{
  "contractName": "IexecPocoDelegate",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "worker",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        }
      ],
      "name": "AccurateContribution",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "worker",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        }
      ],
      "name": "FaultyContribution",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Lock",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "dealid",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "appHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "datasetHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "workerpoolHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "requestHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "volume",
          "type": "uint256"
        }
      ],
      "name": "OrdersMatched",
      "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"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "ref",
          "type": "bytes32"
        }
      ],
      "name": "Reward",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "workerpool",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "dealid",
          "type": "bytes32"
        }
      ],
      "name": "SchedulerNotice",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "ref",
          "type": "bytes32"
        }
      ],
      "name": "Seize",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        }
      ],
      "name": "TaskClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "consensus",
          "type": "bytes32"
        }
      ],
      "name": "TaskConsensus",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "worker",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        }
      ],
      "name": "TaskContribute",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "results",
          "type": "bytes"
        }
      ],
      "name": "TaskFinalize",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "workerpool",
          "type": "address"
        }
      ],
      "name": "TaskInitialize",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        }
      ],
      "name": "TaskReopen",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "worker",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "digest",
          "type": "bytes32"
        }
      ],
      "name": "TaskReveal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Unlock",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_identity",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "verifySignature",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_identity",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "verifyPresignature",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_identity",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "verifyPresignatureOrSignature",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "app",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "appprice",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "tag",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "datasetrestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "workerpoolrestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "requesterrestrict",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "salt",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "sign",
              "type": "bytes"
            }
          ],
          "internalType": "struct IexecLibOrders_v5.AppOrder",
          "name": "_apporder",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "dataset",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "datasetprice",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "tag",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "apprestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "workerpoolrestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "requesterrestrict",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "salt",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "sign",
              "type": "bytes"
            }
          ],
          "internalType": "struct IexecLibOrders_v5.DatasetOrder",
          "name": "_datasetorder",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "workerpoolprice",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "tag",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "category",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "trust",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "apprestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "datasetrestrict",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "requesterrestrict",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "salt",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "sign",
              "type": "bytes"
            }
          ],
          "internalType": "struct IexecLibOrders_v5.WorkerpoolOrder",
          "name": "_workerpoolorder",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "app",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "appmaxprice",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "dataset",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "datasetmaxprice",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "workerpoolmaxprice",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "requester",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "tag",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "category",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "trust",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "beneficiary",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "callback",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "params",
              "type": "string"
            },
            {
              "internalType": "bytes32",
              "name": "salt",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "sign",
              "type": "bytes"
            }
          ],
          "internalType": "struct IexecLibOrders_v5.RequestOrder",
          "name": "_requestorder",
          "type": "tuple"
        }
      ],
      "name": "matchOrders",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_dealid",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "initialize",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_resultHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_resultSeal",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_enclaveChallenge",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_enclaveSign",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "_authorizationSign",
          "type": "bytes"
        }
      ],
      "name": "contribute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_resultDigest",
          "type": "bytes32"
        }
      ],
      "name": "reveal",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        }
      ],
      "name": "reopen",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_results",
          "type": "bytes"
        }
      ],
      "name": "finalize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        }
      ],
      "name": "claim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_resultDigest",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_results",
          "type": "bytes"
        },
        {
          "internalType": "address",
          "name": "_enclaveChallenge",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_enclaveSign",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "_authorizationSign",
          "type": "bytes"
        }
      ],
      "name": "contributeAndFinalize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_dealid",
          "type": "bytes32[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_idx",
          "type": "uint256[]"
        }
      ],
      "name": "initializeArray",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_taskid",
          "type": "bytes32[]"
        }
      ],
      "name": "claimArray",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_dealid",
          "type": "bytes32[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_idx",
          "type": "uint256[]"
        }
      ],
      "name": "initializeAndClaimArray",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"worker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"taskid\",\"type\":\"bytes32\"}],\"name\":\"AccurateContribution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"worker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"taskid\",\"type\":\"bytes32\"}],\"name\":\"FaultyContribution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Lock\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"dealid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"appHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"datasetHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"workerpoolHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"requestHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"}],\"name\":\"OrdersMatched\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"ref\",\"type\":\"bytes32\"}],\"name\":\"Reward\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"dealid\",\"type\":\"bytes32\"}],\"name\":\"SchedulerNotice\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"ref\",\"type\":\"bytes32\"}],\"name\":\"Seize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"taskid\",\"type\":\"bytes32\"}],\"name\":\"TaskClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"taskid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"consensus\",\"type\":\"bytes32\"}],\"name\":\"TaskConsensus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"taskid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"worker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"TaskContribute\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"taskid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"results\",\"type\":\"bytes\"}],\"name\":\"TaskFinalize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"taskid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"}],\"name\":\"TaskInitialize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"taskid\",\"type\":\"bytes32\"}],\"name\":\"TaskReopen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"taskid\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"worker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"TaskReveal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Unlock\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_taskid\",\"type\":\"bytes32\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_taskid\",\"type\":\"bytes32[]\"}],\"name\":\"claimArray\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_taskid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_resultHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_resultSeal\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_enclaveChallenge\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_enclaveSign\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_authorizationSign\",\"type\":\"bytes\"}],\"name\":\"contribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_taskid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_resultDigest\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_results\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_enclaveChallenge\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_enclaveSign\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"_authorizationSign\",\"type\":\"bytes\"}],\"name\":\"contributeAndFinalize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_taskid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_results\",\"type\":\"bytes\"}],\"name\":\"finalize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_dealid\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_dealid\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_idx\",\"type\":\"uint256[]\"}],\"name\":\"initializeAndClaimArray\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_dealid\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_idx\",\"type\":\"uint256[]\"}],\"name\":\"initializeArray\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"appprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"workerpoolrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.AppOrder\",\"name\":\"_apporder\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"dataset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"datasetprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"workerpoolrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.DatasetOrder\",\"name\":\"_datasetorder\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolprice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"apprestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"datasetrestrict\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requesterrestrict\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.WorkerpoolOrder\",\"name\":\"_workerpoolorder\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"appmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"dataset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"datasetmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"workerpool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"workerpoolmaxprice\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"volume\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trust\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"callback\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sign\",\"type\":\"bytes\"}],\"internalType\":\"struct IexecLibOrders_v5.RequestOrder\",\"name\":\"_requestorder\",\"type\":\"tuple\"}],\"name\":\"matchOrders\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_taskid\",\"type\":\"bytes32\"}],\"name\":\"reopen\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_taskid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_resultDigest\",\"type\":\"bytes32\"}],\"name\":\"reveal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"verifyPresignature\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"verifyPresignatureOrSignature\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_identity\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"verifySignature\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"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.\"}}},\"userdoc\":{\"methods\":{\"initialize(bytes32,uint256)\":{\"notice\":\"*************************************************************************                           Consensus methods                            ***************************************************************************\"},\"initializeArray(bytes32[],uint256[])\":{\"notice\":\"*************************************************************************                           Array operations                             ***************************************************************************\"},\"matchOrders((address,uint256,uint256,bytes32,address,address,address,bytes32,bytes),(address,uint256,uint256,bytes32,address,address,address,bytes32,bytes),(address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes),(address,uint256,address,uint256,address,uint256,address,uint256,bytes32,uint256,uint256,address,address,string,bytes32,bytes))\":{\"notice\":\"*************************************************************************                          ODB order matching                            ***************************************************************************\"},\"verifySignature(address,bytes32,bytes)\":{\"notice\":\"*************************************************************************                          ODB order signature                           ***************************************************************************\"}}}},\"settings\":{\"compilationTarget\":{\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/delegates/IexecPocoDelegate.sol\":\"IexecPocoDelegate\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/Store.sol\":{\"keccak256\":\"0x9e49d21b9e009a5b6e7a800ba71973a7e4ff96d5e806d67abaf9c2e8b6652532\",\"urls\":[\"bzz-raw://680a708e1a537b0ca413ac8342ea5e55c2c02ff5dd6d752d085739122955f1c6\",\"dweb:/ipfs/QmUcYhmJSrsNRsvo3W4ZB6DH6YFJHLvg6uLmropgGLTRhh\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/libs/IexecLibCore_v5.sol\":{\"keccak256\":\"0x2ab8fa750e4d0832afc0b04686e46f020bfe115e5be29b2301f41f97509e2a6f\",\"urls\":[\"bzz-raw://750c1e0aebc8cfd8197561d412d6ae77558362845c3195ac59651139e21bbc7f\",\"dweb:/ipfs/QmPimAbBDdB2Yuw5PuWVQ9qa3BUz4Psrav2Y75Vh3Hmmrr\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/libs/IexecLibOrders_v5.sol\":{\"keccak256\":\"0xf2fece8edb03040a06bc18ff9a7354a57c1762c7fd8e5c353e696dd38b7a2693\",\"urls\":[\"bzz-raw://b758832e3a0c3d168ce75cf9569d78104f90afda4d0d2aca80a6612860c49c66\",\"dweb:/ipfs/QmPdteQJsejwYs8Vq4zAKfLUjSECcrRmS1sT3uotFWXpdZ\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/DelegateBase.sol\":{\"keccak256\":\"0x465d3c959887af4a95487e7b0d8e7e579561ee1c5706957836e0b44698bad697\",\"urls\":[\"bzz-raw://61bc27189149a15383a3e4ff3ff4e10f395065949087eb77834e5f5effaea1d8\",\"dweb:/ipfs/QmesUKUoQ5dSRPKjnb2PYNgYPvBHoKvDvhehr9PPa3uawT\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/delegates/IexecERC20Common.sol\":{\"keccak256\":\"0x81b74d1e2375c89e5863dfd6980b6cc6f1c61e0e2a6176e72d2c7aa5f619a8a5\",\"urls\":[\"bzz-raw://67cf9f068c0bada2613f604efc3c9190bae7d07c2c4e2a4e0775584fefdb45f9\",\"dweb:/ipfs/QmcHXs2tSbnuBPQzBGmVoUjN48WKZNrkZ959hReAycLJpu\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/delegates/IexecPocoDelegate.sol\":{\"keccak256\":\"0xe16854ddcf2fd588ef3079ca7550ae06f82282bf5ac66e5e17d6681dbedd0e7b\",\"urls\":[\"bzz-raw://19fc682f6602758bb812910558383ac7fdd05e30646f3d20f86723115513ae38\",\"dweb:/ipfs/QmYdz4PBCqEaMH3hadqM2yvTihWCpSfhomZBoYdu4bGy8v\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/delegates/SignatureVerifier.sol\":{\"keccak256\":\"0x07290b9fa344722d1d6c488b60c01e9c5f797d197f90b5e46417ecc51d06e454\",\"urls\":[\"bzz-raw://e8243a0a4f80b271facddb70049160baf68478da417e4d2de46f6449dc6b13a3\",\"dweb:/ipfs/QmSgFHuYiDP7nBa6Vot1xP4Vtqzy36Ntkkv9ugHw2SbnW2\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/interfaces/IexecPoco.sol\":{\"keccak256\":\"0x14cee99ce1cb5412fb4ad6d303e5f4c059b9444917af19331fbafa25c9d644a9\",\"urls\":[\"bzz-raw://f3ed318a6367a195eb10e62e4f49e945f7a79abc02085403369b00af666eb126\",\"dweb:/ipfs/QmZ4j6vmaGfm3V3xqGUTAbvb1Qrbf38HdCjYPArqFh31gz\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/registries/IRegistry.sol\":{\"keccak256\":\"0x22cd93dce3ec7f424ca689cdd4d5aa6a7d0d5ff81133c8530c5397f206100b84\",\"urls\":[\"bzz-raw://3a12bb04edc05201d7b0f00d7a401152daaa0ee2fd794a848fd760290edcfffa\",\"dweb:/ipfs/QmXYRdrHLLcutF1JLcKSKiCRMxo5X4713BfXFYM4gzrXWc\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/registries/Registry.sol\":{\"keccak256\":\"0xdf594884fc674966628ebbb2b88bc470c89881fdad988812c815bf371ce8b387\",\"urls\":[\"bzz-raw://2386446324af596f08c0a09a2a9047a1d24187ae19c6d07ad727dfa72ff597c9\",\"dweb:/ipfs/QmYmN8jTjiLmcEKXxFPCouubca8AU92agFt4zMeNpkiLey\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/registries/RegistryEntry.sol\":{\"keccak256\":\"0xc5b8b64b19a7f26bdeda8dce637b65c16388adfdc6a77e02455c74722908ed8b\",\"urls\":[\"bzz-raw://a25ccdaeff6f497a58b6b5fda0f82a53243e51be2f59a8ebd4f3f294a95c9f03\",\"dweb:/ipfs/QmWNqwVbTmdVjYYuEaG32HR8P2fDWbTD6YDGX2B623976a\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/registries/apps/App.sol\":{\"keccak256\":\"0x2fda8eaa946a91bec7b6a6e8b6e39d59dfbf02da48a3390924ccddf6c878765e\",\"urls\":[\"bzz-raw://3f0be3037a792a5feaa5c82185e8c1098f3ceeca14c8f7c733b3a79262da9680\",\"dweb:/ipfs/QmdStYN91aJSXz52YeYRczjaxmEpYoFHZjRd2Rktzu1SEN\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/registries/datasets/Dataset.sol\":{\"keccak256\":\"0x343c0cb970203c54630853190b6535f7170e9e3d32371fb30950c0b73140fb47\",\"urls\":[\"bzz-raw://7ffd18cda40275e7de235d1aa1166410a8e377ef9f1872fa50f58b1053391e03\",\"dweb:/ipfs/QmUkg99KkPyi5DKZNSbyCm9Lw2GMPQW2r7jJkywg4SSqnF\"]},\"/home/amxx/Work/iExec/code/PoCo-dev/contracts/registries/workerpools/Workerpool.sol\":{\"keccak256\":\"0xba54886c81794791a38e974d2b24f0789ad21b2a55a0b65abb63596b4e19d888\",\"urls\":[\"bzz-raw://cc6da6f555b9618d54b5a952ebed60fdd469f26dd938adb3d29fe3c1564465f5\",\"dweb:/ipfs/QmbAKdBrNrjF8YGgWL7LtLhRUH2nwpgD1KBiNE6Xd7Cn4q\"]},\"@ensdomains/ens/contracts/ENS.sol\":{\"keccak256\":\"0x10b88673d8c180cd62523be4fec7607c65594eb4f0c561fa0fbc0784422b4871\",\"urls\":[\"bzz-raw://b3de1882a4a1a1b13c27ee6dc04cc58c34ac392c80cad507de2cdfa8c02712fe\",\"dweb:/ipfs/QmeKcaBF8QdJjXiqFrPJkAtK3et5kUL8XJrnHjwhAThRMT\"]},\"@iexec/interface/contracts/IexecClerk.sol\":{\"keccak256\":\"0x703252a638a5a7e2b600395fd920712a1ac259018bc9578fe581a77fa2f008a9\",\"urls\":[\"bzz-raw://072b9e948e5ac4a7f60466c23b322ea0f1aca711f1a94616e658600c2a4c36a2\",\"dweb:/ipfs/QmRP57bkhWDr5BeawfjiKsbdwFiHnw6nc6zgiEad3hQoSJ\"]},\"@iexec/interface/contracts/IexecHub.sol\":{\"keccak256\":\"0x8e293b7624550823838ed9113400544c5980afac1043ddacad7a862c91b0840d\",\"urls\":[\"bzz-raw://ae34ebc355838595ee69b24a31e60deb186455cc388c88de7ecd0294c7037075\",\"dweb:/ipfs/QmUYVQJBWG7ohAYksJRDJKcJVyPMXNFJSPWMAuQcGfWHo7\"]},\"@iexec/interface/contracts/IexecRegistries.sol\":{\"keccak256\":\"0xb39eef47d62d8751c5adfeaf169ce57b50c480788be8356289bc28b78bc24fde\",\"urls\":[\"bzz-raw://a86593f1ef9953ac0965aab4e764374580a899a7f7871ad66b432523171063a1\",\"dweb:/ipfs/QmcYZhHD45APoS1Ebi416DhXU3fiCzoFW2WSMux4AxhFqk\"]},\"@iexec/interface/contracts/libs/IexecODBLibCore.sol\":{\"keccak256\":\"0x3fc7ff4152e9a8f9747d42e262c15c3d460d409732711d9e1da8a88163880183\",\"urls\":[\"bzz-raw://8bacc98b866852e9f1e3563948381cba142ab61d6b1a7c62fbc53b7d57aa0589\",\"dweb:/ipfs/QmUNjhjBxdtHQFWQ61CgnPoaAzL767tQSKF6x34VFWeRyF\"]},\"@iexec/interface/contracts/libs/IexecODBLibOrders.sol\":{\"keccak256\":\"0xe2848a685785b09dc9ee5a6e6329a417eaf18e520388e8575d45a5376b1d62ca\",\"urls\":[\"bzz-raw://d1385ab26f382baa7aadb80faed54290296be09eeccbee1193a1b8a53b0b15d5\",\"dweb:/ipfs/QmUQTFcGX5VZiYwHKu9Yjc4PHNrMgdAyKwKi6tFEMsbaJk\"]},\"@iexec/solidity/contracts/ENStools/ENSReverseRegistration.sol\":{\"keccak256\":\"0xf3f46b28b19d9132ae78c2a43263c06a73cb042ce25175b732e0c1a41c5bbe5a\",\"urls\":[\"bzz-raw://7ca85a78f3f3eafbef6d72c5cd0c35e5b827c797af786cd170659499a0a2c3be\",\"dweb:/ipfs/QmbHZ8zFsiE1PRh7FKt1pt5jR8F6B8HiZ32Mgc8Py3qCUu\"]},\"@iexec/solidity/contracts/ERC1154/IERC1154.sol\":{\"keccak256\":\"0x542ed19435ffdf4e5f1fbf57f87d26883e04cf96c21c69f7eb691e46c0f6ee5d\",\"urls\":[\"bzz-raw://d7744c331a362162870775cdea560f2db4da1ae6123ca05aba825a8850da37a0\",\"dweb:/ipfs/Qmf3FgPtiUiCA4Mnb9LpGrUciub9RwxniGSRPriRM4hVpc\"]},\"@iexec/solidity/contracts/ERC1271/IERC1271.sol\":{\"keccak256\":\"0x5aacf5aa4d2f95e60146bc396f5ca94df0f224c1361bef93488e587bcefad1b3\",\"urls\":[\"bzz-raw://bcd2ab979ce9ebba488df57671a2e7cf8b169ba55a58503930bbf876ece99639\",\"dweb:/ipfs/QmYTS8gpAAWBPQ2Eazw9Ro74PmQGFwjaa3T6uAn5XCktQG\"]},\"@iexec/solidity/contracts/ERC1538/ERC1538Module.sol\":{\"keccak256\":\"0xb1e1ff5fcce00614303b0bb01c595a7d2f3496ae88bc2068e56ba9cd72ec8921\",\"urls\":[\"bzz-raw://a6b87d03a17727ce6fe6c5b0078a198898153ae8230345468479a9aa4560835d\",\"dweb:/ipfs/QmV4T7Wg8TS3uAVhnqMhqD6yZ7Qv8iouYnYrkTSCJirG2P\"]},\"@iexec/solidity/contracts/ERC1538/ERC1538Store.sol\":{\"keccak256\":\"0x4d1e8821dc216013f20044bbf82df3c2ab2c739d1b2ce4d90c15cb65f85707d8\",\"urls\":[\"bzz-raw://e36d4db70862f87b8657c19330f0d45e8e7018ebcf3df97525638c8caa919d2b\",\"dweb:/ipfs/QmZqsrXPsyRkRkjuupKG2SYsyUTBXqe7nkkCy7RKxDKz1L\"]},\"@iexec/solidity/contracts/ERC1654/IERC1654.sol\":{\"keccak256\":\"0x7898850b7046bdfa2abccfe5c1dfc431cbb95c2814e5074cabeb462a32486fa6\",\"urls\":[\"bzz-raw://24fd636386fcd52ce7d0037806c56dd1227dffb8cb28fd29cd7eb39153176dd4\",\"dweb:/ipfs/QmNvwBKUJa8AaMKYmxrny2wRSENgiztbvRHPrbYR5yjKZK\"]},\"@iexec/solidity/contracts/ERC734/IERC734.sol\":{\"keccak256\":\"0x8c90e6571af80f3ccb1e04469cef3a5ac6d7ee02f61c8643bdceb5b8a141da62\",\"urls\":[\"bzz-raw://2402fc97239c6fd515910d4a6c367cabd24abcdc1c54c3090e64cdbaa9deb948\",\"dweb:/ipfs/Qma7jLg9bqkT8QeftRHgftGMZvSjqmsSoQZmWLhnwc2shy\"]},\"@iexec/solidity/contracts/Libs/SafeMathExtended.sol\":{\"keccak256\":\"0xf2802ae591eb22954d9c8e02658ae7577940890aff8d8927a7255e254fed605b\",\"urls\":[\"bzz-raw://8dcc485d21a3aa3f643768d4ac4fc69697b9b37f8fb779f3998ab4cee143fa66\",\"dweb:/ipfs/QmWdwgKPMoWuidYQp6WFsJBhNbJUwFHNE9YPYQZhBsKj7e\"]},\"@iexec/solidity/contracts/Upgradeability/BaseUpgradeabilityProxy.sol\":{\"keccak256\":\"0x47ec56a1226ecf04d49aa82f768814923c1957b69f7fc9e7e470885c75b5a2c6\",\"urls\":[\"bzz-raw://4eae82be03a247a27a2948ed12d5a826dea977f4b5528830c19d9cf4c23dcd53\",\"dweb:/ipfs/Qmb9HtnohAMvjb7vYnXaT3AnQd9p9sLsThnyLnXVzz1umq\"]},\"@iexec/solidity/contracts/Upgradeability/InitializableUpgradeabilityProxy.sol\":{\"keccak256\":\"0xe1bf07e5d913bd04484305a3fb0cc576f6b5d8e4fc0406bf7c9a8b6b2ed766e5\",\"urls\":[\"bzz-raw://b42f6dff696ceadeb44a02aae3049e603984c18af8d94f33fb6544a8b279179c\",\"dweb:/ipfs/QmRWTaRHCGZhKZFKrVAJwXukXiCZcezrVhJJ28H2qBbai7\"]},\"@iexec/solidity/contracts/Upgradeability/Proxy.sol\":{\"keccak256\":\"0xd89f285d80cfeff0efc87f11dbc024a587da3bba142a06695cbac7e4050e9302\",\"urls\":[\"bzz-raw://9c8323ec7efc9fde6c1529f1070c3f3406adb5f8836b17221530d8f0110fe3f4\",\"dweb:/ipfs/QmURRsX9L2gZ83aMULtY1EuRMJExHhFYErCbkxE5CNkAzE\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x0de74dfa6b37943c1b834cbd8fb7a8d052e5ff80c7adb33692102dd6cd2985e9\",\"urls\":[\"bzz-raw://9d2d827fcf4a838f5821732c0acd6a40d21c2a5a2cfe2563feec91465f47bb60\",\"dweb:/ipfs/Qmex3wMKf5Sghbfvr288RUg1kP2uAyTMf11w83WbMbpQQc\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x9a8c691b81a4a48adbbd5b010faa56a168c189e711495c16347d93b60b805f82\",\"urls\":[\"bzz-raw://d951d626ed7bfe1a2d7a6bd4af315ff8691929bd567594d6ab53599fe9e17e4e\",\"dweb:/ipfs/QmYkGeowpa6Bjr9aaDirWdDo7hSfShzzZhanKC4nTfRhLj\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0x98aa1380fd49a255d6cbea58558ea76bff35c59b218671fde8842907b44e7390\",\"urls\":[\"bzz-raw://613eaff66d4c270ddd87448c06267b6e043ef8c8223cb39d8767bc9daa9cb1ec\",\"dweb:/ipfs/Qmcg56orudv25ghmnZCxN37HwNKCXmTTDxj5cyoYYnvHTg\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0x9175561c374ec1fc33045e5dfdde2057e63e00debf432875f9e1e3395d99c149\",\"urls\":[\"bzz-raw://b0167043c1938b56904deaa481a73041aa4a9e054c60db0b0dfbebfe7869c06a\",\"dweb:/ipfs/QmUoYjhymBr6WUpExKgRvKxXD5fcdpQEe1o9ResKZu6CC5\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x04d34b3cd5677bea25f8dfceb6dec0eaa071d4d4b789a43f13fe0c415ba4c296\",\"urls\":[\"bzz-raw://e7e8b526a6839e5ba14f0d23a830387fec47f7043ce01d42c9f285b709a9d080\",\"dweb:/ipfs/QmXmhhFmX5gcAvVzNiDPAGA35iHMPNaYtQkACswRHBVTNw\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x6cc1cb934a3ac2137a7dcaed018af9e235392236ceecfd3687259702b9c767ad\",\"urls\":[\"bzz-raw://0055fa88138cd1c3c6440370f8580f85857f8fe9dec41c99af9eafbeb8d9c3ce\",\"dweb:/ipfs/QmX1xDh8vwGLLCH8ti45eXjQ7Wcxv1FEGTR3jkFnd5Nv6F\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x67a43d3926e72576c96ebf0e6360c979a8cc04f25e4b0ca40c221547d8903ba4\",\"urls\":[\"bzz-raw://77c6f48115c491411f0e27f6b70e2e524b1b57c66e74bd7f1974a31a448e2540\",\"dweb:/ipfs/QmPZCizouS9PVJ1dVf8zqTjHyEo5cSa1ZmPCQpk52TgrmV\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x734b5bedb78074a59bca6aff9e5a1801c9c7e9c5314daf32e14857161fb36932\",\"urls\":[\"bzz-raw://4574e71185f6693eb5cdf7a5126fba97caf0ec0366b08290dd361af44b3414d3\",\"dweb:/ipfs/QmTPBh1R3EU973H7h6D1kQ1XBA1oX2QdSHZACyytWUYKsn\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\":{\"keccak256\":\"0xf81dbd00ad4a1e4795df72759e33872c2599ea6c060be5898ed5d6fcd8ee9a11\",\"urls\":[\"bzz-raw://44dfcc25314c5ed29bc069c4746f87d98bb30a8dbc1a9bdeb797c2a530b9b9c5\",\"dweb:/ipfs/QmbRc5bKDobjE6zamLUy6Sh5HKd6XtNAsfBJzgZuQB3jpv\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\":{\"keccak256\":\"0xa17f4147965ceccd9f2017b14fcf8ef142346ec69c7e0424fd5c99f5ffeed8fa\",\"urls\":[\"bzz-raw://25315aea456015e8a2bc2b5badde793d1ae16d67d09df50ecb90a2af13674b92\",\"dweb:/ipfs/QmTujwcp5f1LioDNdRMfsXs2MsCWu2UeijhEg4VnDbzZmk\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x0c25ff00a747f1df6cb5e5c103adb98334df7e9561b0d46079454131c139bff9\",\"urls\":[\"bzz-raw://9417ce94829309329fa0f0dc50089696bc55f9f675c4b2ffcb31f960fe706250\",\"dweb:/ipfs/QmdckiAmnW2uhXK2V2enu7bEbqiMR6hzMD1ytGH43pKLhE\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x5f7da58ee3d9faa9b8999a93d49c8ff978f1afc88ae9bcfc6f9cbb44da011c2b\",\"urls\":[\"bzz-raw://4f089d954b3ecaa26949412fe63e9a184b056562c6c13dd4a0529a5d9a2e685a\",\"dweb:/ipfs/QmVK5iCNAMcEJQxT59bsC5E53JQASDQPU6khHox3d5ZXCn\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x66d1ed2a353be8d2492833a185c53a8f1de8d8fa575a201e9825cf334d79659a\",\"urls\":[\"bzz-raw://a2e9b79e9cf5b398cd29b30df860a6521eefadd9882a346c423afbee5aee606e\",\"dweb:/ipfs/QmUq7gfqR5x1DaMpRKkWwmLMGLPzqUQhqhFEJ2vcgvFraH\"]},\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0xfd5cf8319cb84ca04ea407d6fba686d53ad7f5d2bf476f41678f5a751d12a7ea\",\"urls\":[\"bzz-raw://45b75b553c4a9053429609b1c3db481f1728ca00448f01acc4065249bbf87adc\",\"dweb:/ipfs/QmRZH6QM32mJn1GZCAPXUQtBz65H4kk6DsGQbGNo4ZNPy9\"]},\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0x7f6401708b61f575b497aa7c8118ca9d70348643c83c26e70d9b643edf1a95c1\",\"urls\":[\"bzz-raw://b020d65f592c1715bc3d5799ad835cd975ef7d314f340f27603fb99ad86a0427\",\"dweb:/ipfs/QmQoGZmzE5aDTMGJM4BW77eraerfTSV9Rs8wykpQ42i1in\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xd1d78b1c8534fbcf8fdc8fbfec9133df142ef8cae9ae820929dfe6d80d2c790a\",\"urls\":[\"bzz-raw://193a827fbe83fa83c4cabb172dc438dd45c50253858a1f2bf56e8f9a2d548386\",\"dweb:/ipfs/QmbWBHwHv7CyHSZY6jxnaDiHWGEEyVb8LeGdRpWXUjaiBr\"]},\"solstruct/contracts/libs/LibMap2.bytes4.address.bytes.sol\":{\"keccak256\":\"0x471645d4b20cc36606122fc6bb692cdf8489118547f90bde2740cb73b1e64d54\",\"urls\":[\"bzz-raw://7ca824c03cd077e6d9630eaa4755787c785a61f612cb8e3ba13d0ce92ee55738\",\"dweb:/ipfs/QmdavtXDokZ7vWZt8pMxPi7DaG3Hd1Q5MyeJjXGRFQuL9r\"]},\"solstruct/contracts/libs/LibSet.bytes4.sol\":{\"keccak256\":\"0xdec5833ab65ae8cab500b84424dde49c1f7817c6575e1631a729fc88c6d4bd7f\",\"urls\":[\"bzz-raw://2e5d23b8383819e6dd77ea61ed30740bcba45b0fff609922b11d1cae2b0223f1\",\"dweb:/ipfs/QmQ27sefXEYXBUSEGdPkuzCqemtUJzNXhhsyd7kB94w6CE\"]}},\"version\":1}",
  "bytecode": "0x60806040526000620000196001600160e01b036200006b16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350916000805160206200573c833981519152908290a350620000656001600160e01b036200006f16565b62000129565b3390565b620000826001600160e01b036200006b16565b6000546001600160a01b03908116911614620000bb5760405162461bcd60e51b8152600401620000b290620000f4565b60405180910390fd5b600080546040516001600160a01b03909116906000805160206200573c833981519152908390a3600080546001600160a01b0319169055565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b61560380620001396000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063bf36994e116100a2578063f2fde38b11610071578063f2fde38b14610210578063f6c68e1014610223578063f722cb3214610236578063fa055d7e14610249578063fc334e8c1461025c5761010b565b8063bf36994e146101c4578063c037f13e146101d7578063c87b582a146101ea578063ec52107d146101fd5761010b565b8063715018a6116100de578063715018a6146101815780638da5cb5b14610189578063b504681d1461019e578063bd66528a146101b15761010b565b80630175199814610110578063156194d41461013957806334623484146101595780635b36c66b1461016e575b600080fd5b61012361011e366004614540565b61026f565b6040516101309190614b73565b60405180910390f35b61014c610147366004614813565b6102bb565b6040516101309190614b7e565b61016c6101673660046146a5565b611309565b005b61014c61017c366004614684565b61181b565b61016c611b47565b610191611bc6565b6040516101309190614b25565b6101236101ac3660046145d8565b611bd6565b61016c6101bf366004614654565b611c32565b6101236101d2366004614540565b611d22565b61016c6101e53660046147a2565b611d65565b6101236101f8366004614515565b6120c5565b61016c61020b366004614733565b6120d8565b61016c61021e3660046144dd565b6126ec565b61016c610231366004614654565b6127a2565b6101236102443660046145d8565b61297c565b610123610257366004614599565b6129c2565b61016c61026a366004614684565b6129fb565b60006102b2858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b8592505050565b95945050505050565b60008082610100015185606001518760600151171790508360800151836101200151146103035760405162461bcd60e51b81526004016102fa90614ec5565b60405180910390fd5b601a54610120840151106103295760405162461bcd60e51b81526004016102fa90614e8e565b8360a0015183610140015111156103525760405162461bcd60e51b81526004016102fa90615046565b85602001518360200151101561037a5760405162461bcd60e51b81526004016102fa90615229565b8460200151836060015110156103a25760405162461bcd60e51b81526004016102fa90614f6a565b83602001518360a0015110156103ca5760405162461bcd60e51b81526004016102fa90614e20565b6060840151198116156103ef5760405162461bcd60e51b81526004016102fa90614fa1565b6060860151811860f81b600160f81b161561041c5760405162461bcd60e51b81526004016102fa90614e57565b855183516001600160a01b0390811691161461044a5760405162461bcd60e51b81526004016102fa906151f2565b84600001516001600160a01b031683604001516001600160a01b0316146104835760405162461bcd60e51b81526004016102fa90614cfe565b60808301516001600160a01b031615806104ac57506104ac836080015185600001516004612c8d565b6104c85760405162461bcd60e51b81526004016102fa9061534a565b60808601516001600160a01b031615806104f157506104f1866080015186600001516004612c8d565b61050d5760405162461bcd60e51b81526004016102fa90614de9565b60a08601516001600160a01b0316158061053657506105368660a0015185600001516004612c8d565b6105525760405162461bcd60e51b81526004016102fa906150b4565b60c08601516001600160a01b0316158061057b575061057b8660c001518460c001516004612c8d565b6105975760405162461bcd60e51b81526004016102fa906152dc565b60808501516001600160a01b031615806105c057506105c0856080015187600001516004612c8d565b6105dc5760405162461bcd60e51b81526004016102fa906150eb565b60a08501516001600160a01b0316158061060557506106058560a0015185600001516004612c8d565b6106215760405162461bcd60e51b81526004016102fa90615381565b60c08501516001600160a01b0316158061064a575061064a8560c001518460c001516004612c8d565b6106665760405162461bcd60e51b81526004016102fa90615159565b60c08401516001600160a01b0316158061068f575061068f8460c0015187600001516004612c8d565b6106ab5760405162461bcd60e51b81526004016102fa90614c4d565b60e08401516001600160a01b031615806106d457506106d48460e0015186600001516004612c8d565b6106f05760405162461bcd60e51b81526004016102fa90614efc565b6101008401516001600160a01b0316158061071b575061071b8461010001518460c001516004612c8d565b6107375760405162461bcd60e51b81526004016102fa90614f33565b61073f613fca565b85516001600160a01b03161515610160820152604051637c0d54d360e01b81526107e59073__IexecLibOrders_v5_____________________90637c0d54d39061078d908b906004016153b8565b60206040518083038186803b1580156107a557600080fd5b505af41580156107b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dd919061466c565b601054612d38565b808252805160209182012081830152875160408051638da5cb5b60e01b815290516001600160a01b0390921692638da5cb5b92600480840193829003018186803b15801561083257600080fd5b505afa158015610846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086a91906144f9565b6001600160a01b039081166040808401919091526005548951915163c3c5a54760e01b815292169163c3c5a547916108a491600401614b25565b60206040518083038186803b1580156108bc57600080fd5b505afa1580156108d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f49190614634565b6109105760405162461bcd60e51b81526004016102fa90615122565b61092881604001518260000151896101000151612d64565b6109445760405162461bcd60e51b81526004016102fa90615313565b80610160015115610aee576040516308d9777160e11b815261098a9073__IexecLibOrders_v5_____________________906311b2eee29061078d908a906004016153b8565b6060820181905280516020918201206080830152865160408051638da5cb5b60e01b815290516001600160a01b0390921692638da5cb5b92600480840193829003018186803b1580156109dc57600080fd5b505afa1580156109f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1491906144f9565b6001600160a01b0390811660a0830152600654875160405163c3c5a54760e01b8152919092169163c3c5a54791610a4e9190600401614b25565b60206040518083038186803b158015610a6657600080fd5b505afa158015610a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9e9190614634565b610aba5760405162461bcd60e51b81526004016102fa90614db2565b610ad28160a001518260600151886101000151612d64565b610aee5760405162461bcd60e51b81526004016102fa90614c84565b604051637f6cc2ff60e11b8152610b299073__IexecLibOrders_v5_____________________9063fed985fe9061078d9089906004016154e7565b60c08201819052805160209182012060e0830152855160408051638da5cb5b60e01b815290516001600160a01b0390921692638da5cb5b92600480840193829003018186803b158015610b7b57600080fd5b505afa158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb391906144f9565b6001600160a01b03908116610100830152600754865160405163c3c5a54760e01b8152919092169163c3c5a54791610bee9190600401614b25565b60206040518083038186803b158015610c0657600080fd5b505afa158015610c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3e9190614634565b610c5a5760405162461bcd60e51b81526004016102fa9061500f565b610c738161010001518260c00151876101400151612d64565b610c8f5760405162461bcd60e51b81526004016102fa90614d35565b604051638ac03f3360e01b8152610cca9073__IexecLibOrders_v5_____________________90638ac03f339061078d9088906004016153cb565b61012082018190528051602082012061014083015260c08501516101e0860151610cf49290612d64565b610d105760405162461bcd60e51b81526004016102fa90614fd8565b6020808201516000908152601290915260408082205490890151610d399163ffffffff612d8816565b9050816101600151610d4b5780610d86565b6080820151600090815260126020526040908190205490880151610d8691610d79919063ffffffff612d8816565b829063ffffffff612d9d16565b60e0830151600090815260126020526040908190205490880151919250610db691610d799163ffffffff612d8816565b61014083015160009081526012602052604090205460e0870151919250610de691610d799163ffffffff612d8816565b905060008111610e085760405162461bcd60e51b81526004016102fa9061507d565b61014082015160008181526012602090815260408083205490519293610e3093909201614abb565b60408051808303601f1901815291815281516020928301206000818152601384528290208c5181546001600160a01b03199081166001600160a01b03928316178355938801516001830180548616918316919091179055938d0151600282015560a087015160048201805485169186169190911790558b51600382018054909416941693909317909155610160850151909250610ece576000610ed4565b88602001515b600582015587516006820180546001600160a01b039283166001600160a01b03199182161790915561010086015160078401805491909316911617905560208801516008820155610140870151610f3290600163ffffffff612db316565b6009820155610120870151600a820155600b810185905560c0870151600c820180546001600160a01b039283166001600160a01b031991821617909155610160890151600d84018054918416918316919091179055610180890151600e840180549190931691161790556101a08701518051610fb891600f84019160209091019061402d565b504260108201556101408401516000908152601260208181526040928390205460118501559083018590558951825163b55e75af60e01b8152925161106d936001600160a01b039092169263b55e75af9260048082019391829003018186803b15801561102457600080fd5b505afa158015611038573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105c919061466c565b60208a01519063ffffffff612dc316565b816013018190555087600001516001600160a01b03166387639c686040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b257600080fd5b505afa1580156110c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ea919061466c565b6014820155602080850151600090815260129091526040902054611114908463ffffffff612dd116565b6020808601516000908152601290915260409020556101608401516111609061113e576000611140565b835b60808601516000908152601260205260409020549063ffffffff612dd116565b60808501516000908152601260205260408082209290925560e086015181522054611191908463ffffffff612dd116565b60e085015160009081526012602052604080822092909255610140860151815220546111c3908463ffffffff612dd116565b610140850151600090815260126020526040902055600c810154600882015460058301546002840154611232936001600160a01b03169261122d9288926112219291611215919063ffffffff612dd116565b9063ffffffff612dd116565b9063ffffffff612de316565b612e0a565b60078101546008820154611261916001600160a01b03169061122d90869061122190601e63ffffffff612dc316565b60068101546040516001600160a01b03909116907f692ad61076dceddd0f1a861f737553dd61fc8501cf4190d29c4e90af6607f765906112a2908590614b7e565b60405180910390a27fd811b592ed0899225773e8933d8df64bd0b62761a9d7aad4ed5b22735f4610a482856020015186608001518760e00151886101400151886040516112f496959493929190614b87565b60405180910390a15098975050505050505050565b6000868152601460209081526040808320601690925282209091908161132d612e98565b6001600160a01b03166001600160a01b0316815260200190815260200160002090506113576140ab565b60018381015460009081526013602090815260409182902082516102408101845281546001600160a01b039081166101e0830190815283870154821661020084015260028085015461022085015290835285516060808201885260038601548416825260048601548416828801526005860154828901528487019190915286518082018852600686015484168152600786015484168188015260088601548189015284880152600985015490840152600a8401546080840152600b84015460a0840152600c840154821660c0840152600d840154821660e0840152600e84015490911661010080840191909152600f840180548751988116159092026000190190911691909104601f8101859004850287018501909552848652909491936101208601938301828280156114cc5780601f106114a1576101008083540402835291602001916114cc565b820191906000526020600020905b8154815290600101906020018083116114af57829003601f168201915b50505091835250506010820154602082015260118201546040820152601282015460608201526013820154608082015260149091015460a09091015290506001835460ff16600481111561151c57fe5b1461152657600080fd5b4283600401541161153657600080fd5b6000825460ff16600381111561154857fe5b1461155257600080fd5b6001600160a01b038616151580611577575060a0810151601f1a60f81b600160f81b16155b61158057600080fd5b6116046001600160a01b038716158015906115a557506018546001600160a01b031615155b6115b7578160400151602001516115c4565b6018546001600160a01b03165b6115fe6115cf612e98565b8c8a6040516020016115e393929190614a64565b60405160208183030381529060405280519060200120612e9c565b86612ec5565b61160d57600080fd5b6001600160a01b038616158061163e575061163e866116388a8a6040516020016115e3929190614abb565b87612ec5565b61164757600080fd5b8154600160ff19909116811783558201889055600282018790556003820180546001600160a01b0319166001600160a01b038816179055600a830161168a612e98565b815460018082018455600093845260209093200180546001600160a01b0319166001600160a01b03929092169190911790558301546116d0906116cb612e98565b612fee565b6116d8612e98565b6001600160a01b0316897f3fdb8d7797562d49a81078dbf7fa1771958ea452f8b13d1148383bd9506aecfb8a6040516117119190614b7e565b60405180910390a360008981526015602052604081209061177f6001611773600361176781601787611741612e98565b6001600160a01b031681526020810191909152604001600020549063ffffffff61301216565b9063ffffffff612db316565b9063ffffffff612d8816565b60008b8152602084905260408120549192506117aa826117738561122183600163ffffffff612db316565b90506117b583613034565b600487015560008c8152602085905260409020546117d9908263ffffffff612dd116565b60008d81526020869052604090205560018401546117fd908263ffffffff612dd116565b600185015561180c8d8d6131f2565b50505050505050505050505050565b60006118256140ab565b60008481526013602090815260409182902082516102408101845281546001600160a01b039081166101e08301908152600180850154831661020085015260028086015461022086015291845286516060808201895260038701548516825260048701548516828901526005870154828a0152858801919091528751808201895260068701548516815260078701548516818901526008870154818a015285890152600986015490850152600a8501546080850152600b85015460a0850152600c850154831660c0850152600d850154831660e0850152600e85015490921661010080850191909152600f850180548851948116159092026000190190911691909104601f8101869004860283018601909652858252919492936101208601939192919083018282801561199a5780601f1061196f5761010080835404028352916020019161199a565b820191906000526020600020905b81548152906001019060200180831161197d57829003601f168201915b505050505081526020016010820154815260200160118201548152602001601282015481526020016013820154815260200160148201548152505090508061016001518310156119e957600080fd5b610180810151610160820151611a049163ffffffff612dd116565b8310611a0f57600080fd5b60008484604051602001611a24929190614abb565b60408051601f1981840301815291815281516020928301206000818152601490935290822090925090815460ff166004811115611a5d57fe5b14611a6757600080fd5b805460ff1916600190811782558101869055600281018590556080830151601a80549091908110611a9457fe5b6000918252602090912060039182020160020154908201819055610140840151611ac391611215906007612de3565b60048201556101408301516003820154611ae9919061121590600a63ffffffff612de316565b6006820155600082815260156020526040808220600190810155848101515190516001600160a01b039091169184917f252992fb0468d68d6a5784ec03214f0d0a362083f2d7ebd157af43b017a22e069190a3509150505b92915050565b611b4f612e98565b6000546001600160a01b03908116911614611b7c5760405162461bcd60e51b81526004016102fa906151bd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03165b90565b6000838214611be457600080fd5b60005b84811015611c2657611c1d868683818110611bfe57fe5b90506020020135858584818110611c1157fe5b9050602002013561181b565b50600101611be7565b50600195945050505050565b60008181526014602052604090206001815460ff166004811115611c5257fe5b1480611c6d57506002815460ff166004811115611c6b57fe5b145b611c7657600080fd5b4281600601541115611c8757600080fd5b805460ff191660041781556001810154611ca190836133a1565b60005b600a820154811015611cf257600082600a018281548110611cc157fe5b60009182526020909120015460018401546001600160a01b039091169150611ce99082613463565b50600101611ca4565b5060405182907fcbc308b5f91040d2659a5201858344b0b583cd2f9e18e8470c2fa052c5b21ff890600090a25050565b60006102b2858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348392505050565b6000838152601460209081526040808320600101548352601390915290206007015483906001600160a01b0316611d9a612e98565b6001600160a01b031614611dad57600080fd5b6000848152601460205260409020611dc36140ab565b60018281015460009081526013602090815260409182902082516102408101845281546001600160a01b039081166101e0830190815283870154821661020084015260028085015461022085015290835285516060808201885260038601548416825260048601548416828801526005860154828901528487019190915286518082018852600686015484168152600786015484168188015260088601548189015284880152600985015490840152600a8401546080840152600b84015460a0840152600c840154821660c0840152600d840154821660e0840152600e84015490911661010080840191909152600f840180548751988116159092026000190190911691909104601f810185900485028701850190955284865290949193610120860193830182828015611f385780601f10611f0d57610100808354040283529160200191611f38565b820191906000526020600020905b815481529060010190602001808311611f1b57829003601f168201915b50505091835250506010820154602082015260118201546040820152601282015460608201526013820154608082015260149091015460a09091015290506002825460ff166004811115611f8857fe5b14611f9257600080fd5b42826006015411611fa257600080fd5b816009015482600801541480611fcb575060008260080154118015611fcb575042826005015411155b611fd457600080fd5b6101008101516001600160a01b03161580612009575081600b01548585604051611fff929190614ac9565b6040518091039020145b61201257600080fd5b815460ff1916600317825561202b600c83018686614151565b5061203a8260010154876134a0565b61204386613637565b857f78ce8a8bc0fcb704e8ba3b3dbb36aa88002df8038128b4af2f27ef65db6650448686604051612075929190614be6565b60405180910390a26120bd8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613ab192505050565b505050505050565b60006120d18383613b8f565b9392505050565b600086815260146020908152604080832060169092528220909190816120fc612e98565b6001600160a01b03166001600160a01b0316815260200190815260200160002090506121266140ab565b60018381015460009081526013602090815260409182902082516102408101845281546001600160a01b039081166101e0830190815283870154821661020084015260028085015461022085015290835285516060808201885260038601548416825260048601548416828801526005860154828901528487019190915286518082018852600686015484168152600786015484168188015260088601548189015284880152600985015490840152600a8401546080840152600b84015460a0840152600c840154821660c0840152600d840154821660e0840152600e84015490911661010080840191909152600f840180548751988116159092026000190190911691909104601f81018590048502870185019095528486529094919361012086019383018282801561229b5780601f106122705761010080835404028352916020019161229b565b820191906000526020600020905b81548152906001019060200180831161227e57829003601f168201915b50505091835250506010820154602082015260118201546040820152601282015460608201526013820154608082015260149091015460a09091015290506001835460ff1660048111156122eb57fe5b146122f557600080fd5b4283600401541161230557600080fd5b600a8301541561231457600080fd5b806060015160011461232557600080fd5b6000898960405160200161233a929190614abb565b604051602081830303815290604052805190602001209050600061235c612e98565b8b8b60405160200161237093929190614a91565b60405160208183030381529060405280519060200120905060006001600160a01b03168361010001516001600160a01b031614806123b35750885160208a01208a145b6123bc57600080fd5b6001600160a01b0388161515806123e1575060a0830151601f1a60f81b600160f81b16155b6123ea57600080fd5b6124536001600160a01b0389161580159061240f57506018546001600160a01b031615155b6124215783604001516020015161242e565b6018546001600160a01b03165b61244d612439612e98565b8e8c6040516020016115e393929190614a64565b88612ec5565b61245c57600080fd5b6001600160a01b038816158061248d575061248d8861248784846040516020016115e3929190614abb565b89612ec5565b61249657600080fd5b8354600260ff199182168117865560018601848155818701849055600380880180546001600160a01b0319166001600160a01b038e16179055885490931683178855546007880155908601546124f191429161121591612de3565b60058601556001600886018190556009860155600b85018a9055885161252090600c87019060208c019061402d565b5084600a0161252d612e98565b815460018082018455600093845260209093200180546001600160a01b0319166001600160a01b039290921691909117905585015461256c908c6134a0565b600061259e61258a856101c001516064612d8890919063ffffffff16565b60408087015101519063ffffffff612dc316565b905060006125bd82866040015160400151612d8890919063ffffffff16565b90506125d16125ca612e98565b838f613bc5565b6125e08760010154828f613bd0565b6125e8612e98565b6001600160a01b03168d7f3fdb8d7797562d49a81078dbf7fa1771958ea452f8b13d1148383bd9506aecfb866040516126219190614b7e565b60405180910390a38c7ff6d49bf3e05d33a4bc497d3c793fb5756388bb96b947cf51bb60aaecb0e022e3856040516126599190614b7e565b60405180910390a2612669612e98565b6001600160a01b03168d7f4b1763d473ac8fa80b4432ba90047e1b92444d8fabc55e6a002d9b1a316d79598e6040516126a29190614b7e565b60405180910390a38c7f78ce8a8bc0fcb704e8ba3b3dbb36aa88002df8038128b4af2f27ef65db6650448c6040516126da9190614c15565b60405180910390a261180c8d8c613ab1565b6126f4612e98565b6000546001600160a01b039081169116146127215760405162461bcd60e51b81526004016102fa906151bd565b6001600160a01b0381166127475760405162461bcd60e51b81526004016102fa90614d6c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152601460209081526040808320600101548352601390915290206007015481906001600160a01b03166127d7612e98565b6001600160a01b0316146127ea57600080fd5b60008281526014602052604090206002815460ff16600481111561280a57fe5b1461281457600080fd5b4281600601541161282457600080fd5b4281600501541115801561283a57506008810154155b61284357600080fd5b60005b600a8201548110156128dc57600082600a01828154811061286357fe5b600091825260208083209091015460078601548884526016835260408085206001600160a01b0390931680865292909352919092206001015491925014156128d35760008581526016602090815260408083206001600160a01b03851684529091529020805460ff191660031790555b50600101612846565b50600083815260156020908152604080832060078501548452918290529091205460018201546129119163ffffffff612d8816565b600182810191909155600783018054600090815260208490526040808220829055855460ff19169093178555908190556005840181905560098401819055905185917f3afe0f24796ce653c6ab1f3e7aba5ce564eece5e82aee724aff28253e829f07b91a250505050565b600083821461298a57600080fd5b60005b84811015611c26576129ba6101bf8787848181106129a757fe5b90506020020135868685818110611c1157fe5b60010161298d565b6000805b828110156129f1576129e98484838181106129dd57fe5b90506020020135611c32565b6001016129c6565b5060019392505050565b60008281526014602090815260408083206016909252822090919081612a1f612e98565b6001600160a01b03168152602081019190915260400160002090506002825460ff166004811115612a4c57fe5b14612a5657600080fd5b42826005015411612a6657600080fd5b6001815460ff166003811115612a7857fe5b14612a8257600080fd5b8160070154816001015414612a9657600080fd5b8383604051602001612aa9929190614abb565b60405160208183030381529060405280519060200120816001015414612ace57600080fd5b612ad6612e98565b8484604051602001612aea93929190614a91565b60405160208183030381529060405280519060200120816002015414612b0f57600080fd5b805460ff191660021781556008820154612b2a906001612dd1565b6008830155600b8201839055612b3e612e98565b6001600160a01b0316847f4b1763d473ac8fa80b4432ba90047e1b92444d8fabc55e6a002d9b1a316d795985604051612b779190614b7e565b60405180910390a350505050565b6000612b9084613bf6565b15612c6757604051630b135d3f60e11b81526001600160a01b03851690631626ba7e90612bc39086908690600401614baf565b60206040518083038186803b158015612bdb57600080fd5b505afa925050508015612c0b575060408051601f3d908101601f19168201909252612c08918101906147eb565b60015b612c45573d808015612c39576040519150601f19603f3d011682016040523d82523d6000602084013e612c3e565b606091505b5050612c5f565b6001600160e01b031916630b135d3f60e11b1490506120d1565b5060006120d1565b836001600160a01b0316612c7b8484613c2f565b6001600160a01b031614949350505050565b6000826001600160a01b0316846001600160a01b03161480612d305750836001600160a01b031663d202158d612cc285613d39565b846040518363ffffffff1660e01b8152600401612ce0929190614abb565b60206040518083038186803b158015612cf857600080fd5b505afa158015612d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d309190614634565b949350505050565b60608183604051602001612d4d929190614b0a565b604051602081830303815290604052905092915050565b6000612d77848480519060200120613b8f565b80612d305750612d30848484612ec5565b600082821115612d9757600080fd5b50900390565b6000818310612dac57816120d1565b5090919050565b600081831015612dac57816120d1565b60006120d183836064613d45565b6000828201838110156120d157600080fd5b600082612df257506000611b41565b82820282848281612dff57fe5b04146120d157600080fd5b612e15823083613d5a565b6001600160a01b0382166000908152600e6020526040902054612e3e908263ffffffff612dd116565b6001600160a01b0383166000908152600e60205260409081902091909155517f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d42790612e8c9084908490614b39565b60405180910390a15050565b3390565b606081604051602001612eaf9190614ad9565b6040516020818303038152906040529050919050565b6000612ed084613bf6565b15612fd3576040516320c13b0b60e01b81526001600160a01b038516906320c13b0b90612f039086908690600401614c28565b60206040518083038186803b158015612f1b57600080fd5b505afa925050508015612f4b575060408051601f3d908101601f19168201909252612f48918101906147eb565b60015b612f85573d808015612f79576040519150601f19603f3d011682016040523d82523d6000602084013e612f7e565b606091505b5050612f9f565b6001600160e01b0319166320c13b0b60e01b1490506120d1565b82516020840120604051630b135d3f60e11b81526001600160a01b03861691631626ba7e91612bc391908690600401614baf565b836001600160a01b0316612c7b848051906020012084613c2f565b61300e816013600085815260200190815260200160002060130154612e0a565b5050565b600080821161302057600080fd5b600082848161302b57fe5b04949350505050565b604080517ff8f9cbfae6cc78fbefe7cdc3a1793dfcf4f0e8bbd8cec470b6a28a7a5a3e1efd81527ff5ecf1b3e9debc68e1d9cfabc5997135bfb7a7a3938b7b606b5b4b3f2f1f0ffe60208201527ff6e4ed9ff2d6b458eadcdf97bd91692de2d4da8fd2d0ac50c6ae9a8272523616818301527fc8c0b887b0a8a4489c948c7f847c6125746c645c544c444038302820181008ff60608201527ff7cae577eec2a03cf3bad76fb589591debb2dd67e0aa9834bea6925f6a4a2e0e60808201527fe39ed557db96902cd38ed14fad815115c786af479b7e8324736353433727170760a08201527fc976c13bb96e881cb166a933a55e490d9d56952b8d4e801485467d236242260660c08201527f753a6d1b65325d0c552a4d1345224105391a310b29122104190a11030902010060e0820152610100808201909252600160f81b6001600160801b68010000000000000000640100000000620100006010600460026000198c019081041790810417908104178881041790810417908104179081041790810417017e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff0281900460ff039091015104600160ff1b909211020190565b60008281526014602090815260408083206015835281842060018083015486526013909452919093206009015490916132479061323690839063ffffffff612d8816565b60018401549063ffffffff612de316565b600085815260208490526040902054613266908363ffffffff612de316565b111561339a576000805b600a85015481101561332257600085600a01828154811061328d57fe5b60009182526020808320909101548a83526016825260408084206001600160a01b0390921680855291909252912060010154909150871480156133005750600160008981526016602090815260408083206001600160a01b038616845290915290205460ff1660038111156132fe57fe5b145b156133195761331683600163ffffffff612dd116565b92505b50600101613270565b50835460ff19166002908117855560078501869055600385015461334b91429161121591612de3565b6005850155600060088501556009840181905560405186907ff6d49bf3e05d33a4bc497d3c793fb5756388bb96b947cf51bb60aaecb0e022e390613390908890614b7e565b60405180910390a2505b5050505050565b60008281526013602052604081206008810154600582015460028301549293926133d69291611215919063ffffffff612dd116565b60088301549091506000906133f290601e63ffffffff612dc316565b600c84015490915061340d906001600160a01b031683613e63565b6007830154613426906001600160a01b03168286613ee5565b6134457399c2268479b93fde36232351229815df80837e238286613f6b565b61339a7399c2268479b93fde36232351229815df80837e2382612e0a565b61300e816013600085815260200190815260200160002060130154613e63565b600061348f8484613b8f565b80612d305750612d30848484612b85565b60008281526013602052604081206008810154600582015460028301549293926134d59291611215919063ffffffff612dd116565b60088301549091506000906134f190601e63ffffffff612dc316565b600c84015490915061350d906001600160a01b03168386613ee5565b6002830154156135355760018301546002840154613535916001600160a01b03169086613f6b565b600583015415801590613554575060038301546001600160a01b031615155b156135775760048301546005840154613577916001600160a01b03169086613f6b565b600783015461358f906001600160a01b031682613e63565b7399c2268479b93fde36232351229815df80837e23600052600e6020527f0c6541af8a90dc64ec40ead0c49d5d6bd34489a48d08db53d659372ff556a4305480156120bd576135fd816135f1633b9aca0061176783600a63ffffffff612dc316565b9063ffffffff612d9d16565b905061361e7399c2268479b93fde36232351229815df80837e238287613ee5565b60078401546120bd906001600160a01b03168287613f6b565b600081815260146020526040902061364d6140ab565b60018281015460009081526013602090815260409182902082516102408101845281546001600160a01b039081166101e0830190815283870154821661020084015260028085015461022085015290835285516060808201885260038601548416825260048601548416828801526005860154828901528487019190915286518082018852600686015484168152600786015484168188015260088601548189015284880152600985015490840152600a8401546080840152600b84015460a0840152600c840154821660c0840152600d840154821660e0840152600e84015490911661010080840191909152600f840180548751988116159092026000190190911691909104601f8101859004850287018501909552848652909491936101208601938301828280156137c25780601f10613797576101008083540402835291602001916137c2565b820191906000526020600020905b8154815290600101906020018083116137a557829003601f168201915b5050509183525050601082015460208201526011820154604080830191909152601283015460608301526013830154608083015260149092015460a090910152818101510151909150600090815b600a8501548110156138b757600085600a01828154811061382d57fe5b60009182526020808320909101548983526016825260408084206001600160a01b039092168085529190925291209091506002815460ff16600381111561387057fe5b141561389357600481015461388c90869063ffffffff612dd116565b94506138ad565b6101a08601516138aa90859063ffffffff612dd116565b93505b5050600101613810565b5060006138e36138d6856101c001516064612d8890919063ffffffff16565b839063ffffffff612dc316565b905060005b600a860154811015613aa157600086600a01828154811061390557fe5b60009182526020808320909101548a83526016825260408084206001600160a01b039092168085529190925291209091506002815460ff16600381111561394857fe5b1415613a175760048101546000906139689086908963ffffffff613d4516565b905061397a868263ffffffff612d8816565b955061398a896001015484613463565b61399583828c613bc5565b600a89015460011015613a11576001600160a01b0383166000908152601760205260409020546139cc90600163ffffffff612dd116565b6001600160a01b0384166000818152601760205260408082209390935591518c927f9703f4589802246c80b822e63697180da799e363cd1b6fd9465a5e5574d5349291a35b50613a97565b613a268860010154838b613fa9565b6001600160a01b038216600090815260176020526040902054613a52906002600363ffffffff613d4516565b6001600160a01b0383166000818152601760205260408082209390935591518b927ff868788948d55240774fdbad06555105ef20bbc70d1b7eccda982b65e11e79bb91a35b50506001016138e8565b506120bd85600101548388613bd0565b600082815260146020908152604080832060010154835260139091529020600e01546001600160a01b03168015613b8a57601954604051635dd8085560e01b81526001600160a01b03831691635dd8085591613b139087908790600401614baf565b600060405180830381600088803b158015613b2d57600080fd5b5087f193505050508015613b3f575060015b613b8a573d808015613b6d576040519150601f19603f3d011682016040523d82523d6000602084013e613b72565b606091505b50603f60195481613b7f57fe5b045a11613b8857fe5b505b505050565b60006001600160a01b038316158015906120d15750506000908152601160205260409020546001600160a01b0390811691161490565b613b8a838383613f6b565b600083815260136020526040902060070154613b8a906001600160a01b03168383613f6b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590612d30575050151592915050565b600080600080845160411415613c595750505060208201516040830151606084015160001a613c9e565b845160401415613c8657505050602082015160408301516001600160ff1b0381169060001a60071c613c9e565b60405162461bcd60e51b81526004016102fa906152a5565b601b8160ff161015613cae57601b015b8060ff16601b1480613cc357508060ff16601c145b613cdf5760405162461bcd60e51b81526004016102fa90615190565b60018682858560405160008152602001604052604051613d029493929190614bc8565b6020604051602081039080840390855afa158015613d24573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b6001600160a01b031690565b6000612d30613d548585612de3565b83613012565b6001600160a01b038316613d805760405162461bcd60e51b81526004016102fa90615260565b6001600160a01b038216613da65760405162461bcd60e51b81526004016102fa90614cbb565b6001600160a01b0383166000908152600d6020526040902054613dcf908263ffffffff612d8816565b6001600160a01b038085166000908152600d60205260408082209390935590841681522054613e04908263ffffffff612dd116565b6001600160a01b038084166000818152600d602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613e56908590614b7e565b60405180910390a3505050565b613e6e308383613d5a565b6001600160a01b0382166000908152600e6020526040902054613e97908263ffffffff612d8816565b6001600160a01b0383166000908152600e60205260409081902091909155517f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f190612e8c9084908490614b39565b6001600160a01b0383166000908152600e6020526040902054613f0e908363ffffffff612d8816565b6001600160a01b0384166000908152600e60205260409081902091909155517f1bccc549c38561cd5b57f0db11ceb8dde1b0b6ee05ab5e155b51c7c5ba64becb90613f5e90859085908590614b52565b60405180910390a1505050565b613f76308484613d5a565b7fc2aca55aa696938c7e95842e8939ca0fbb2120a3eeb8948cdcee2b70da566672838383604051613f5e93929190614b52565b613b8a82601360008681526020019081526020016000206013015483613ee5565b604080516101808101825260608082526000602083018190529282018390528082018190526080820183905260a0820183905260c0820181905260e082018390526101008201839052610120820152610140810182905261016081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061406e57805160ff191683800117855561409b565b8280016001018555821561409b579182015b8281111561409b578251825591602001919060010190614080565b506140a79291506141bf565b5090565b604051806101e001604052806140bf6141d9565b81526020016140cc6141d9565b81526020016140d96141d9565b815260200160008152602001600081526020016000801916815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106141925782800160ff1982351617855561409b565b8280016001018555821561409b579182015b8281111561409b5782358255916020019190600101906141a4565b611bd391905b808211156140a757600081556001016141c5565b604080516060810182526000808252602082018190529181019190915290565b8035611b41816155b5565b60008083601f840112614215578182fd5b5081356001600160401b0381111561422b578182fd5b602083019150836020808302850101111561424557600080fd5b9250929050565b60008083601f84011261425d578182fd5b5081356001600160401b03811115614273578182fd5b60208301915083602082850101111561424557600080fd5b600082601f83011261429b578081fd5b81356001600160401b038111156142b0578182fd5b6142c3601f8201601f191660200161558f565b91508082528360208285010111156142da57600080fd5b8060208401602084013760009082016020015292915050565b6000610120808385031215614306578182fd5b61430f8161558f565b91505061431c83836141f9565b815260208201356020820152604082013560408201526060820135606082015261434983608084016141f9565b608082015261435b8360a084016141f9565b60a082015261436d8360c084016141f9565b60c082015260e082013560e0820152610100808301356001600160401b0381111561439757600080fd5b6143a38582860161428b565b82840152505092915050565b60006102008083850312156143c2578182fd5b6143cb8161558f565b9150506143d883836141f9565b8152602082013560208201526143f183604084016141f9565b60408201526060820135606082015261440d83608084016141f9565b608082015260a082013560a08201526144298360c084016141f9565b60c082015260e08281013590820152610100808301359082015261012080830135908201526101408083013590820152610160614468848285016141f9565b9082015261018061447b848483016141f9565b908201526101a0828101356001600160401b038082111561449b57600080fd5b6144a78683870161428b565b838501526101c0925082850135838501526101e09250828501359150808211156144d057600080fd5b506143a38582860161428b565b6000602082840312156144ee578081fd5b81356120d1816155b5565b60006020828403121561450a578081fd5b81516120d1816155b5565b60008060408385031215614527578081fd5b8235614532816155b5565b946020939093013593505050565b60008060008060608587031215614555578182fd5b8435614560816155b5565b93506020850135925060408501356001600160401b03811115614581578283fd5b61458d8782880161424c565b95989497509550505050565b600080602083850312156145ab578182fd5b82356001600160401b038111156145c0578283fd5b6145cc85828601614204565b90969095509350505050565b600080600080604085870312156145ed578182fd5b84356001600160401b0380821115614603578384fd5b61460f88838901614204565b90965094506020870135915080821115614627578384fd5b5061458d87828801614204565b600060208284031215614645578081fd5b815180151581146120d1578182fd5b600060208284031215614665578081fd5b5035919050565b60006020828403121561467d578081fd5b5051919050565b60008060408385031215614696578182fd5b50508035926020909101359150565b60008060008060008060c087890312156146bd578384fd5b86359550602087013594506040870135935060608701356146dd816155b5565b925060808701356001600160401b03808211156146f8578384fd5b6147048a838b0161428b565b935060a0890135915080821115614719578283fd5b5061472689828a0161428b565b9150509295509295509295565b60008060008060008060c0878903121561474b578384fd5b863595506020870135945060408701356001600160401b038082111561476f578586fd5b61477b8a838b0161428b565b95506060890135915061478d826155b5565b909350608088013590808211156146f8578384fd5b6000806000604084860312156147b6578081fd5b8335925060208401356001600160401b038111156147d2578182fd5b6147de8682870161424c565b9497909650939450505050565b6000602082840312156147fc578081fd5b81516001600160e01b0319811681146120d1578182fd5b60008060008060808587031215614828578182fd5b84356001600160401b038082111561483e578384fd5b61484a888389016142f3565b9550602087013591508082111561485f578384fd5b61486b888389016142f3565b94506040870135915080821115614880578384fd5b610160918701808903831315614894578485fd5b61489d8361558f565b6148a78a836141f9565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a08201526148e88a60c084016141f9565b60c08201526148fa8a60e084016141f9565b60e082015261010093506149108a8584016141f9565b848201526101209350838201358482015261014093508382013583811115614936578687fd5b6149428b82850161428b565b85830152508095505050606087013591508082111561495f578283fd5b5061496c878288016143af565b91505092959194509250565b6001600160a01b03169052565b60008151808452815b818110156149aa5760208185018101518683018201520161498e565b818111156149bb5782602083870101525b50601f01601f19169290920160200192915050565b600061012060018060a01b0383511684526020830151602085015260408301516040850152606083015160608501526080830151614a116080860182614978565b5060a0830151614a2460a0860182614978565b5060c0830151614a3760c0860182614978565b5060e083015160e0850152610100808401518282870152614a5a83870182614985565b9695505050505050565b6bffffffffffffffffffffffff19606094851b811682526014820193909352921b16603482015260480190565b60609390931b6bffffffffffffffffffffffff191683526014830191909152603482015260540190565b918252602082015260400190565b6000828483379101908152919050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b901515815260200190565b90815260200190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b600083825260406020830152612d306040830184614985565b93845260ff9290921660208401526040830152606082015260800190565b60006020825282602083015282846040840137818301604090810191909152601f909201601f19160101919050565b6000602082526120d16020830184614985565b600060408252614c3b6040830185614985565b82810360208401526102b28185614985565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831390000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307833310000000000000000604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831310000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307834310000000000000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307833300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831330000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830350000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830370000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830310000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831610000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831620000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830340000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830360000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307835300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307834300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830320000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307836300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831340000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831360000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307832300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831380000000000000000604082015260600190565b60208082526013908201527234b73b30b634b216b9b4b3b730ba3ab93296bb60691b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830330000000000000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526018908201527f696e76616c69642d7369676e61747572652d666f726d61740000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831350000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307832310000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831320000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831370000000000000000604082015260600190565b6000602082526120d160208301846149d0565b6000602082526153df602083018451614978565b6020830151604083015260408301516153fb6060840182614978565b5060608301516080830152608083015161541860a0840182614978565b5060a083015160c083015260c083015161543560e0840182614978565b5060e08301516101008381019190915283015161012080840191909152830151610140808401919091528301516101608084019190915283015161018061547e81850183614978565b84015190506101a061549284820183614978565b808501519150506102006101c081818601526154b2610220860184614985565b908601516101e08681019190915280870151868303601f1901848801529350906154dc8185614985565b979650505050505050565b6000602082526154fb602083018451614978565b602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015161553f60e0840182614978565b5060e083015161010061555481850183614978565b840151905061012061556884820183614978565b84015161014084810191909152840151610160808501529050612d30610180840182614985565b6040518181016001600160401b03811182821017156155ad57600080fd5b604052919050565b6001600160a01b03811681146155ca57600080fd5b5056fea26469706673582212207fdd385720bc01092a56cada07c8fda39acf7c1c110d30e34e9a7c2cfe4755b864736f6c634300060600338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063bf36994e116100a2578063f2fde38b11610071578063f2fde38b14610210578063f6c68e1014610223578063f722cb3214610236578063fa055d7e14610249578063fc334e8c1461025c5761010b565b8063bf36994e146101c4578063c037f13e146101d7578063c87b582a146101ea578063ec52107d146101fd5761010b565b8063715018a6116100de578063715018a6146101815780638da5cb5b14610189578063b504681d1461019e578063bd66528a146101b15761010b565b80630175199814610110578063156194d41461013957806334623484146101595780635b36c66b1461016e575b600080fd5b61012361011e366004614540565b61026f565b6040516101309190614b73565b60405180910390f35b61014c610147366004614813565b6102bb565b6040516101309190614b7e565b61016c6101673660046146a5565b611309565b005b61014c61017c366004614684565b61181b565b61016c611b47565b610191611bc6565b6040516101309190614b25565b6101236101ac3660046145d8565b611bd6565b61016c6101bf366004614654565b611c32565b6101236101d2366004614540565b611d22565b61016c6101e53660046147a2565b611d65565b6101236101f8366004614515565b6120c5565b61016c61020b366004614733565b6120d8565b61016c61021e3660046144dd565b6126ec565b61016c610231366004614654565b6127a2565b6101236102443660046145d8565b61297c565b610123610257366004614599565b6129c2565b61016c61026a366004614684565b6129fb565b60006102b2858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b8592505050565b95945050505050565b60008082610100015185606001518760600151171790508360800151836101200151146103035760405162461bcd60e51b81526004016102fa90614ec5565b60405180910390fd5b601a54610120840151106103295760405162461bcd60e51b81526004016102fa90614e8e565b8360a0015183610140015111156103525760405162461bcd60e51b81526004016102fa90615046565b85602001518360200151101561037a5760405162461bcd60e51b81526004016102fa90615229565b8460200151836060015110156103a25760405162461bcd60e51b81526004016102fa90614f6a565b83602001518360a0015110156103ca5760405162461bcd60e51b81526004016102fa90614e20565b6060840151198116156103ef5760405162461bcd60e51b81526004016102fa90614fa1565b6060860151811860f81b600160f81b161561041c5760405162461bcd60e51b81526004016102fa90614e57565b855183516001600160a01b0390811691161461044a5760405162461bcd60e51b81526004016102fa906151f2565b84600001516001600160a01b031683604001516001600160a01b0316146104835760405162461bcd60e51b81526004016102fa90614cfe565b60808301516001600160a01b031615806104ac57506104ac836080015185600001516004612c8d565b6104c85760405162461bcd60e51b81526004016102fa9061534a565b60808601516001600160a01b031615806104f157506104f1866080015186600001516004612c8d565b61050d5760405162461bcd60e51b81526004016102fa90614de9565b60a08601516001600160a01b0316158061053657506105368660a0015185600001516004612c8d565b6105525760405162461bcd60e51b81526004016102fa906150b4565b60c08601516001600160a01b0316158061057b575061057b8660c001518460c001516004612c8d565b6105975760405162461bcd60e51b81526004016102fa906152dc565b60808501516001600160a01b031615806105c057506105c0856080015187600001516004612c8d565b6105dc5760405162461bcd60e51b81526004016102fa906150eb565b60a08501516001600160a01b0316158061060557506106058560a0015185600001516004612c8d565b6106215760405162461bcd60e51b81526004016102fa90615381565b60c08501516001600160a01b0316158061064a575061064a8560c001518460c001516004612c8d565b6106665760405162461bcd60e51b81526004016102fa90615159565b60c08401516001600160a01b0316158061068f575061068f8460c0015187600001516004612c8d565b6106ab5760405162461bcd60e51b81526004016102fa90614c4d565b60e08401516001600160a01b031615806106d457506106d48460e0015186600001516004612c8d565b6106f05760405162461bcd60e51b81526004016102fa90614efc565b6101008401516001600160a01b0316158061071b575061071b8461010001518460c001516004612c8d565b6107375760405162461bcd60e51b81526004016102fa90614f33565b61073f613fca565b85516001600160a01b03161515610160820152604051637c0d54d360e01b81526107e59073__IexecLibOrders_v5_____________________90637c0d54d39061078d908b906004016153b8565b60206040518083038186803b1580156107a557600080fd5b505af41580156107b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dd919061466c565b601054612d38565b808252805160209182012081830152875160408051638da5cb5b60e01b815290516001600160a01b0390921692638da5cb5b92600480840193829003018186803b15801561083257600080fd5b505afa158015610846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086a91906144f9565b6001600160a01b039081166040808401919091526005548951915163c3c5a54760e01b815292169163c3c5a547916108a491600401614b25565b60206040518083038186803b1580156108bc57600080fd5b505afa1580156108d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f49190614634565b6109105760405162461bcd60e51b81526004016102fa90615122565b61092881604001518260000151896101000151612d64565b6109445760405162461bcd60e51b81526004016102fa90615313565b80610160015115610aee576040516308d9777160e11b815261098a9073__IexecLibOrders_v5_____________________906311b2eee29061078d908a906004016153b8565b6060820181905280516020918201206080830152865160408051638da5cb5b60e01b815290516001600160a01b0390921692638da5cb5b92600480840193829003018186803b1580156109dc57600080fd5b505afa1580156109f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1491906144f9565b6001600160a01b0390811660a0830152600654875160405163c3c5a54760e01b8152919092169163c3c5a54791610a4e9190600401614b25565b60206040518083038186803b158015610a6657600080fd5b505afa158015610a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9e9190614634565b610aba5760405162461bcd60e51b81526004016102fa90614db2565b610ad28160a001518260600151886101000151612d64565b610aee5760405162461bcd60e51b81526004016102fa90614c84565b604051637f6cc2ff60e11b8152610b299073__IexecLibOrders_v5_____________________9063fed985fe9061078d9089906004016154e7565b60c08201819052805160209182012060e0830152855160408051638da5cb5b60e01b815290516001600160a01b0390921692638da5cb5b92600480840193829003018186803b158015610b7b57600080fd5b505afa158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb391906144f9565b6001600160a01b03908116610100830152600754865160405163c3c5a54760e01b8152919092169163c3c5a54791610bee9190600401614b25565b60206040518083038186803b158015610c0657600080fd5b505afa158015610c1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3e9190614634565b610c5a5760405162461bcd60e51b81526004016102fa9061500f565b610c738161010001518260c00151876101400151612d64565b610c8f5760405162461bcd60e51b81526004016102fa90614d35565b604051638ac03f3360e01b8152610cca9073__IexecLibOrders_v5_____________________90638ac03f339061078d9088906004016153cb565b61012082018190528051602082012061014083015260c08501516101e0860151610cf49290612d64565b610d105760405162461bcd60e51b81526004016102fa90614fd8565b6020808201516000908152601290915260408082205490890151610d399163ffffffff612d8816565b9050816101600151610d4b5780610d86565b6080820151600090815260126020526040908190205490880151610d8691610d79919063ffffffff612d8816565b829063ffffffff612d9d16565b60e0830151600090815260126020526040908190205490880151919250610db691610d799163ffffffff612d8816565b61014083015160009081526012602052604090205460e0870151919250610de691610d799163ffffffff612d8816565b905060008111610e085760405162461bcd60e51b81526004016102fa9061507d565b61014082015160008181526012602090815260408083205490519293610e3093909201614abb565b60408051808303601f1901815291815281516020928301206000818152601384528290208c5181546001600160a01b03199081166001600160a01b03928316178355938801516001830180548616918316919091179055938d0151600282015560a087015160048201805485169186169190911790558b51600382018054909416941693909317909155610160850151909250610ece576000610ed4565b88602001515b600582015587516006820180546001600160a01b039283166001600160a01b03199182161790915561010086015160078401805491909316911617905560208801516008820155610140870151610f3290600163ffffffff612db316565b6009820155610120870151600a820155600b810185905560c0870151600c820180546001600160a01b039283166001600160a01b031991821617909155610160890151600d84018054918416918316919091179055610180890151600e840180549190931691161790556101a08701518051610fb891600f84019160209091019061402d565b504260108201556101408401516000908152601260208181526040928390205460118501559083018590558951825163b55e75af60e01b8152925161106d936001600160a01b039092169263b55e75af9260048082019391829003018186803b15801561102457600080fd5b505afa158015611038573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105c919061466c565b60208a01519063ffffffff612dc316565b816013018190555087600001516001600160a01b03166387639c686040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b257600080fd5b505afa1580156110c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ea919061466c565b6014820155602080850151600090815260129091526040902054611114908463ffffffff612dd116565b6020808601516000908152601290915260409020556101608401516111609061113e576000611140565b835b60808601516000908152601260205260409020549063ffffffff612dd116565b60808501516000908152601260205260408082209290925560e086015181522054611191908463ffffffff612dd116565b60e085015160009081526012602052604080822092909255610140860151815220546111c3908463ffffffff612dd116565b610140850151600090815260126020526040902055600c810154600882015460058301546002840154611232936001600160a01b03169261122d9288926112219291611215919063ffffffff612dd116565b9063ffffffff612dd116565b9063ffffffff612de316565b612e0a565b60078101546008820154611261916001600160a01b03169061122d90869061122190601e63ffffffff612dc316565b60068101546040516001600160a01b03909116907f692ad61076dceddd0f1a861f737553dd61fc8501cf4190d29c4e90af6607f765906112a2908590614b7e565b60405180910390a27fd811b592ed0899225773e8933d8df64bd0b62761a9d7aad4ed5b22735f4610a482856020015186608001518760e00151886101400151886040516112f496959493929190614b87565b60405180910390a15098975050505050505050565b6000868152601460209081526040808320601690925282209091908161132d612e98565b6001600160a01b03166001600160a01b0316815260200190815260200160002090506113576140ab565b60018381015460009081526013602090815260409182902082516102408101845281546001600160a01b039081166101e0830190815283870154821661020084015260028085015461022085015290835285516060808201885260038601548416825260048601548416828801526005860154828901528487019190915286518082018852600686015484168152600786015484168188015260088601548189015284880152600985015490840152600a8401546080840152600b84015460a0840152600c840154821660c0840152600d840154821660e0840152600e84015490911661010080840191909152600f840180548751988116159092026000190190911691909104601f8101859004850287018501909552848652909491936101208601938301828280156114cc5780601f106114a1576101008083540402835291602001916114cc565b820191906000526020600020905b8154815290600101906020018083116114af57829003601f168201915b50505091835250506010820154602082015260118201546040820152601282015460608201526013820154608082015260149091015460a09091015290506001835460ff16600481111561151c57fe5b1461152657600080fd5b4283600401541161153657600080fd5b6000825460ff16600381111561154857fe5b1461155257600080fd5b6001600160a01b038616151580611577575060a0810151601f1a60f81b600160f81b16155b61158057600080fd5b6116046001600160a01b038716158015906115a557506018546001600160a01b031615155b6115b7578160400151602001516115c4565b6018546001600160a01b03165b6115fe6115cf612e98565b8c8a6040516020016115e393929190614a64565b60405160208183030381529060405280519060200120612e9c565b86612ec5565b61160d57600080fd5b6001600160a01b038616158061163e575061163e866116388a8a6040516020016115e3929190614abb565b87612ec5565b61164757600080fd5b8154600160ff19909116811783558201889055600282018790556003820180546001600160a01b0319166001600160a01b038816179055600a830161168a612e98565b815460018082018455600093845260209093200180546001600160a01b0319166001600160a01b03929092169190911790558301546116d0906116cb612e98565b612fee565b6116d8612e98565b6001600160a01b0316897f3fdb8d7797562d49a81078dbf7fa1771958ea452f8b13d1148383bd9506aecfb8a6040516117119190614b7e565b60405180910390a360008981526015602052604081209061177f6001611773600361176781601787611741612e98565b6001600160a01b031681526020810191909152604001600020549063ffffffff61301216565b9063ffffffff612db316565b9063ffffffff612d8816565b60008b8152602084905260408120549192506117aa826117738561122183600163ffffffff612db316565b90506117b583613034565b600487015560008c8152602085905260409020546117d9908263ffffffff612dd116565b60008d81526020869052604090205560018401546117fd908263ffffffff612dd116565b600185015561180c8d8d6131f2565b50505050505050505050505050565b60006118256140ab565b60008481526013602090815260409182902082516102408101845281546001600160a01b039081166101e08301908152600180850154831661020085015260028086015461022086015291845286516060808201895260038701548516825260048701548516828901526005870154828a0152858801919091528751808201895260068701548516815260078701548516818901526008870154818a015285890152600986015490850152600a8501546080850152600b85015460a0850152600c850154831660c0850152600d850154831660e0850152600e85015490921661010080850191909152600f850180548851948116159092026000190190911691909104601f8101869004860283018601909652858252919492936101208601939192919083018282801561199a5780601f1061196f5761010080835404028352916020019161199a565b820191906000526020600020905b81548152906001019060200180831161197d57829003601f168201915b505050505081526020016010820154815260200160118201548152602001601282015481526020016013820154815260200160148201548152505090508061016001518310156119e957600080fd5b610180810151610160820151611a049163ffffffff612dd116565b8310611a0f57600080fd5b60008484604051602001611a24929190614abb565b60408051601f1981840301815291815281516020928301206000818152601490935290822090925090815460ff166004811115611a5d57fe5b14611a6757600080fd5b805460ff1916600190811782558101869055600281018590556080830151601a80549091908110611a9457fe5b6000918252602090912060039182020160020154908201819055610140840151611ac391611215906007612de3565b60048201556101408301516003820154611ae9919061121590600a63ffffffff612de316565b6006820155600082815260156020526040808220600190810155848101515190516001600160a01b039091169184917f252992fb0468d68d6a5784ec03214f0d0a362083f2d7ebd157af43b017a22e069190a3509150505b92915050565b611b4f612e98565b6000546001600160a01b03908116911614611b7c5760405162461bcd60e51b81526004016102fa906151bd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03165b90565b6000838214611be457600080fd5b60005b84811015611c2657611c1d868683818110611bfe57fe5b90506020020135858584818110611c1157fe5b9050602002013561181b565b50600101611be7565b50600195945050505050565b60008181526014602052604090206001815460ff166004811115611c5257fe5b1480611c6d57506002815460ff166004811115611c6b57fe5b145b611c7657600080fd5b4281600601541115611c8757600080fd5b805460ff191660041781556001810154611ca190836133a1565b60005b600a820154811015611cf257600082600a018281548110611cc157fe5b60009182526020909120015460018401546001600160a01b039091169150611ce99082613463565b50600101611ca4565b5060405182907fcbc308b5f91040d2659a5201858344b0b583cd2f9e18e8470c2fa052c5b21ff890600090a25050565b60006102b2858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061348392505050565b6000838152601460209081526040808320600101548352601390915290206007015483906001600160a01b0316611d9a612e98565b6001600160a01b031614611dad57600080fd5b6000848152601460205260409020611dc36140ab565b60018281015460009081526013602090815260409182902082516102408101845281546001600160a01b039081166101e0830190815283870154821661020084015260028085015461022085015290835285516060808201885260038601548416825260048601548416828801526005860154828901528487019190915286518082018852600686015484168152600786015484168188015260088601548189015284880152600985015490840152600a8401546080840152600b84015460a0840152600c840154821660c0840152600d840154821660e0840152600e84015490911661010080840191909152600f840180548751988116159092026000190190911691909104601f810185900485028701850190955284865290949193610120860193830182828015611f385780601f10611f0d57610100808354040283529160200191611f38565b820191906000526020600020905b815481529060010190602001808311611f1b57829003601f168201915b50505091835250506010820154602082015260118201546040820152601282015460608201526013820154608082015260149091015460a09091015290506002825460ff166004811115611f8857fe5b14611f9257600080fd5b42826006015411611fa257600080fd5b816009015482600801541480611fcb575060008260080154118015611fcb575042826005015411155b611fd457600080fd5b6101008101516001600160a01b03161580612009575081600b01548585604051611fff929190614ac9565b6040518091039020145b61201257600080fd5b815460ff1916600317825561202b600c83018686614151565b5061203a8260010154876134a0565b61204386613637565b857f78ce8a8bc0fcb704e8ba3b3dbb36aa88002df8038128b4af2f27ef65db6650448686604051612075929190614be6565b60405180910390a26120bd8686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613ab192505050565b505050505050565b60006120d18383613b8f565b9392505050565b600086815260146020908152604080832060169092528220909190816120fc612e98565b6001600160a01b03166001600160a01b0316815260200190815260200160002090506121266140ab565b60018381015460009081526013602090815260409182902082516102408101845281546001600160a01b039081166101e0830190815283870154821661020084015260028085015461022085015290835285516060808201885260038601548416825260048601548416828801526005860154828901528487019190915286518082018852600686015484168152600786015484168188015260088601548189015284880152600985015490840152600a8401546080840152600b84015460a0840152600c840154821660c0840152600d840154821660e0840152600e84015490911661010080840191909152600f840180548751988116159092026000190190911691909104601f81018590048502870185019095528486529094919361012086019383018282801561229b5780601f106122705761010080835404028352916020019161229b565b820191906000526020600020905b81548152906001019060200180831161227e57829003601f168201915b50505091835250506010820154602082015260118201546040820152601282015460608201526013820154608082015260149091015460a09091015290506001835460ff1660048111156122eb57fe5b146122f557600080fd5b4283600401541161230557600080fd5b600a8301541561231457600080fd5b806060015160011461232557600080fd5b6000898960405160200161233a929190614abb565b604051602081830303815290604052805190602001209050600061235c612e98565b8b8b60405160200161237093929190614a91565b60405160208183030381529060405280519060200120905060006001600160a01b03168361010001516001600160a01b031614806123b35750885160208a01208a145b6123bc57600080fd5b6001600160a01b0388161515806123e1575060a0830151601f1a60f81b600160f81b16155b6123ea57600080fd5b6124536001600160a01b0389161580159061240f57506018546001600160a01b031615155b6124215783604001516020015161242e565b6018546001600160a01b03165b61244d612439612e98565b8e8c6040516020016115e393929190614a64565b88612ec5565b61245c57600080fd5b6001600160a01b038816158061248d575061248d8861248784846040516020016115e3929190614abb565b89612ec5565b61249657600080fd5b8354600260ff199182168117865560018601848155818701849055600380880180546001600160a01b0319166001600160a01b038e16179055885490931683178855546007880155908601546124f191429161121591612de3565b60058601556001600886018190556009860155600b85018a9055885161252090600c87019060208c019061402d565b5084600a0161252d612e98565b815460018082018455600093845260209093200180546001600160a01b0319166001600160a01b039290921691909117905585015461256c908c6134a0565b600061259e61258a856101c001516064612d8890919063ffffffff16565b60408087015101519063ffffffff612dc316565b905060006125bd82866040015160400151612d8890919063ffffffff16565b90506125d16125ca612e98565b838f613bc5565b6125e08760010154828f613bd0565b6125e8612e98565b6001600160a01b03168d7f3fdb8d7797562d49a81078dbf7fa1771958ea452f8b13d1148383bd9506aecfb866040516126219190614b7e565b60405180910390a38c7ff6d49bf3e05d33a4bc497d3c793fb5756388bb96b947cf51bb60aaecb0e022e3856040516126599190614b7e565b60405180910390a2612669612e98565b6001600160a01b03168d7f4b1763d473ac8fa80b4432ba90047e1b92444d8fabc55e6a002d9b1a316d79598e6040516126a29190614b7e565b60405180910390a38c7f78ce8a8bc0fcb704e8ba3b3dbb36aa88002df8038128b4af2f27ef65db6650448c6040516126da9190614c15565b60405180910390a261180c8d8c613ab1565b6126f4612e98565b6000546001600160a01b039081169116146127215760405162461bcd60e51b81526004016102fa906151bd565b6001600160a01b0381166127475760405162461bcd60e51b81526004016102fa90614d6c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152601460209081526040808320600101548352601390915290206007015481906001600160a01b03166127d7612e98565b6001600160a01b0316146127ea57600080fd5b60008281526014602052604090206002815460ff16600481111561280a57fe5b1461281457600080fd5b4281600601541161282457600080fd5b4281600501541115801561283a57506008810154155b61284357600080fd5b60005b600a8201548110156128dc57600082600a01828154811061286357fe5b600091825260208083209091015460078601548884526016835260408085206001600160a01b0390931680865292909352919092206001015491925014156128d35760008581526016602090815260408083206001600160a01b03851684529091529020805460ff191660031790555b50600101612846565b50600083815260156020908152604080832060078501548452918290529091205460018201546129119163ffffffff612d8816565b600182810191909155600783018054600090815260208490526040808220829055855460ff19169093178555908190556005840181905560098401819055905185917f3afe0f24796ce653c6ab1f3e7aba5ce564eece5e82aee724aff28253e829f07b91a250505050565b600083821461298a57600080fd5b60005b84811015611c26576129ba6101bf8787848181106129a757fe5b90506020020135868685818110611c1157fe5b60010161298d565b6000805b828110156129f1576129e98484838181106129dd57fe5b90506020020135611c32565b6001016129c6565b5060019392505050565b60008281526014602090815260408083206016909252822090919081612a1f612e98565b6001600160a01b03168152602081019190915260400160002090506002825460ff166004811115612a4c57fe5b14612a5657600080fd5b42826005015411612a6657600080fd5b6001815460ff166003811115612a7857fe5b14612a8257600080fd5b8160070154816001015414612a9657600080fd5b8383604051602001612aa9929190614abb565b60405160208183030381529060405280519060200120816001015414612ace57600080fd5b612ad6612e98565b8484604051602001612aea93929190614a91565b60405160208183030381529060405280519060200120816002015414612b0f57600080fd5b805460ff191660021781556008820154612b2a906001612dd1565b6008830155600b8201839055612b3e612e98565b6001600160a01b0316847f4b1763d473ac8fa80b4432ba90047e1b92444d8fabc55e6a002d9b1a316d795985604051612b779190614b7e565b60405180910390a350505050565b6000612b9084613bf6565b15612c6757604051630b135d3f60e11b81526001600160a01b03851690631626ba7e90612bc39086908690600401614baf565b60206040518083038186803b158015612bdb57600080fd5b505afa925050508015612c0b575060408051601f3d908101601f19168201909252612c08918101906147eb565b60015b612c45573d808015612c39576040519150601f19603f3d011682016040523d82523d6000602084013e612c3e565b606091505b5050612c5f565b6001600160e01b031916630b135d3f60e11b1490506120d1565b5060006120d1565b836001600160a01b0316612c7b8484613c2f565b6001600160a01b031614949350505050565b6000826001600160a01b0316846001600160a01b03161480612d305750836001600160a01b031663d202158d612cc285613d39565b846040518363ffffffff1660e01b8152600401612ce0929190614abb565b60206040518083038186803b158015612cf857600080fd5b505afa158015612d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d309190614634565b949350505050565b60608183604051602001612d4d929190614b0a565b604051602081830303815290604052905092915050565b6000612d77848480519060200120613b8f565b80612d305750612d30848484612ec5565b600082821115612d9757600080fd5b50900390565b6000818310612dac57816120d1565b5090919050565b600081831015612dac57816120d1565b60006120d183836064613d45565b6000828201838110156120d157600080fd5b600082612df257506000611b41565b82820282848281612dff57fe5b04146120d157600080fd5b612e15823083613d5a565b6001600160a01b0382166000908152600e6020526040902054612e3e908263ffffffff612dd116565b6001600160a01b0383166000908152600e60205260409081902091909155517f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d42790612e8c9084908490614b39565b60405180910390a15050565b3390565b606081604051602001612eaf9190614ad9565b6040516020818303038152906040529050919050565b6000612ed084613bf6565b15612fd3576040516320c13b0b60e01b81526001600160a01b038516906320c13b0b90612f039086908690600401614c28565b60206040518083038186803b158015612f1b57600080fd5b505afa925050508015612f4b575060408051601f3d908101601f19168201909252612f48918101906147eb565b60015b612f85573d808015612f79576040519150601f19603f3d011682016040523d82523d6000602084013e612f7e565b606091505b5050612f9f565b6001600160e01b0319166320c13b0b60e01b1490506120d1565b82516020840120604051630b135d3f60e11b81526001600160a01b03861691631626ba7e91612bc391908690600401614baf565b836001600160a01b0316612c7b848051906020012084613c2f565b61300e816013600085815260200190815260200160002060130154612e0a565b5050565b600080821161302057600080fd5b600082848161302b57fe5b04949350505050565b604080517ff8f9cbfae6cc78fbefe7cdc3a1793dfcf4f0e8bbd8cec470b6a28a7a5a3e1efd81527ff5ecf1b3e9debc68e1d9cfabc5997135bfb7a7a3938b7b606b5b4b3f2f1f0ffe60208201527ff6e4ed9ff2d6b458eadcdf97bd91692de2d4da8fd2d0ac50c6ae9a8272523616818301527fc8c0b887b0a8a4489c948c7f847c6125746c645c544c444038302820181008ff60608201527ff7cae577eec2a03cf3bad76fb589591debb2dd67e0aa9834bea6925f6a4a2e0e60808201527fe39ed557db96902cd38ed14fad815115c786af479b7e8324736353433727170760a08201527fc976c13bb96e881cb166a933a55e490d9d56952b8d4e801485467d236242260660c08201527f753a6d1b65325d0c552a4d1345224105391a310b29122104190a11030902010060e0820152610100808201909252600160f81b6001600160801b68010000000000000000640100000000620100006010600460026000198c019081041790810417908104178881041790810417908104179081041790810417017e818283848586878898a8b8c8d8e8f929395969799a9b9d9e9faaeb6bedeeff0281900460ff039091015104600160ff1b909211020190565b60008281526014602090815260408083206015835281842060018083015486526013909452919093206009015490916132479061323690839063ffffffff612d8816565b60018401549063ffffffff612de316565b600085815260208490526040902054613266908363ffffffff612de316565b111561339a576000805b600a85015481101561332257600085600a01828154811061328d57fe5b60009182526020808320909101548a83526016825260408084206001600160a01b0390921680855291909252912060010154909150871480156133005750600160008981526016602090815260408083206001600160a01b038616845290915290205460ff1660038111156132fe57fe5b145b156133195761331683600163ffffffff612dd116565b92505b50600101613270565b50835460ff19166002908117855560078501869055600385015461334b91429161121591612de3565b6005850155600060088501556009840181905560405186907ff6d49bf3e05d33a4bc497d3c793fb5756388bb96b947cf51bb60aaecb0e022e390613390908890614b7e565b60405180910390a2505b5050505050565b60008281526013602052604081206008810154600582015460028301549293926133d69291611215919063ffffffff612dd116565b60088301549091506000906133f290601e63ffffffff612dc316565b600c84015490915061340d906001600160a01b031683613e63565b6007830154613426906001600160a01b03168286613ee5565b6134457399c2268479b93fde36232351229815df80837e238286613f6b565b61339a7399c2268479b93fde36232351229815df80837e2382612e0a565b61300e816013600085815260200190815260200160002060130154613e63565b600061348f8484613b8f565b80612d305750612d30848484612b85565b60008281526013602052604081206008810154600582015460028301549293926134d59291611215919063ffffffff612dd116565b60088301549091506000906134f190601e63ffffffff612dc316565b600c84015490915061350d906001600160a01b03168386613ee5565b6002830154156135355760018301546002840154613535916001600160a01b03169086613f6b565b600583015415801590613554575060038301546001600160a01b031615155b156135775760048301546005840154613577916001600160a01b03169086613f6b565b600783015461358f906001600160a01b031682613e63565b7399c2268479b93fde36232351229815df80837e23600052600e6020527f0c6541af8a90dc64ec40ead0c49d5d6bd34489a48d08db53d659372ff556a4305480156120bd576135fd816135f1633b9aca0061176783600a63ffffffff612dc316565b9063ffffffff612d9d16565b905061361e7399c2268479b93fde36232351229815df80837e238287613ee5565b60078401546120bd906001600160a01b03168287613f6b565b600081815260146020526040902061364d6140ab565b60018281015460009081526013602090815260409182902082516102408101845281546001600160a01b039081166101e0830190815283870154821661020084015260028085015461022085015290835285516060808201885260038601548416825260048601548416828801526005860154828901528487019190915286518082018852600686015484168152600786015484168188015260088601548189015284880152600985015490840152600a8401546080840152600b84015460a0840152600c840154821660c0840152600d840154821660e0840152600e84015490911661010080840191909152600f840180548751988116159092026000190190911691909104601f8101859004850287018501909552848652909491936101208601938301828280156137c25780601f10613797576101008083540402835291602001916137c2565b820191906000526020600020905b8154815290600101906020018083116137a557829003601f168201915b5050509183525050601082015460208201526011820154604080830191909152601283015460608301526013830154608083015260149092015460a090910152818101510151909150600090815b600a8501548110156138b757600085600a01828154811061382d57fe5b60009182526020808320909101548983526016825260408084206001600160a01b039092168085529190925291209091506002815460ff16600381111561387057fe5b141561389357600481015461388c90869063ffffffff612dd116565b94506138ad565b6101a08601516138aa90859063ffffffff612dd116565b93505b5050600101613810565b5060006138e36138d6856101c001516064612d8890919063ffffffff16565b839063ffffffff612dc316565b905060005b600a860154811015613aa157600086600a01828154811061390557fe5b60009182526020808320909101548a83526016825260408084206001600160a01b039092168085529190925291209091506002815460ff16600381111561394857fe5b1415613a175760048101546000906139689086908963ffffffff613d4516565b905061397a868263ffffffff612d8816565b955061398a896001015484613463565b61399583828c613bc5565b600a89015460011015613a11576001600160a01b0383166000908152601760205260409020546139cc90600163ffffffff612dd116565b6001600160a01b0384166000818152601760205260408082209390935591518c927f9703f4589802246c80b822e63697180da799e363cd1b6fd9465a5e5574d5349291a35b50613a97565b613a268860010154838b613fa9565b6001600160a01b038216600090815260176020526040902054613a52906002600363ffffffff613d4516565b6001600160a01b0383166000818152601760205260408082209390935591518b927ff868788948d55240774fdbad06555105ef20bbc70d1b7eccda982b65e11e79bb91a35b50506001016138e8565b506120bd85600101548388613bd0565b600082815260146020908152604080832060010154835260139091529020600e01546001600160a01b03168015613b8a57601954604051635dd8085560e01b81526001600160a01b03831691635dd8085591613b139087908790600401614baf565b600060405180830381600088803b158015613b2d57600080fd5b5087f193505050508015613b3f575060015b613b8a573d808015613b6d576040519150601f19603f3d011682016040523d82523d6000602084013e613b72565b606091505b50603f60195481613b7f57fe5b045a11613b8857fe5b505b505050565b60006001600160a01b038316158015906120d15750506000908152601160205260409020546001600160a01b0390811691161490565b613b8a838383613f6b565b600083815260136020526040902060070154613b8a906001600160a01b03168383613f6b565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590612d30575050151592915050565b600080600080845160411415613c595750505060208201516040830151606084015160001a613c9e565b845160401415613c8657505050602082015160408301516001600160ff1b0381169060001a60071c613c9e565b60405162461bcd60e51b81526004016102fa906152a5565b601b8160ff161015613cae57601b015b8060ff16601b1480613cc357508060ff16601c145b613cdf5760405162461bcd60e51b81526004016102fa90615190565b60018682858560405160008152602001604052604051613d029493929190614bc8565b6020604051602081039080840390855afa158015613d24573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b6001600160a01b031690565b6000612d30613d548585612de3565b83613012565b6001600160a01b038316613d805760405162461bcd60e51b81526004016102fa90615260565b6001600160a01b038216613da65760405162461bcd60e51b81526004016102fa90614cbb565b6001600160a01b0383166000908152600d6020526040902054613dcf908263ffffffff612d8816565b6001600160a01b038085166000908152600d60205260408082209390935590841681522054613e04908263ffffffff612dd116565b6001600160a01b038084166000818152600d602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613e56908590614b7e565b60405180910390a3505050565b613e6e308383613d5a565b6001600160a01b0382166000908152600e6020526040902054613e97908263ffffffff612d8816565b6001600160a01b0383166000908152600e60205260409081902091909155517f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f190612e8c9084908490614b39565b6001600160a01b0383166000908152600e6020526040902054613f0e908363ffffffff612d8816565b6001600160a01b0384166000908152600e60205260409081902091909155517f1bccc549c38561cd5b57f0db11ceb8dde1b0b6ee05ab5e155b51c7c5ba64becb90613f5e90859085908590614b52565b60405180910390a1505050565b613f76308484613d5a565b7fc2aca55aa696938c7e95842e8939ca0fbb2120a3eeb8948cdcee2b70da566672838383604051613f5e93929190614b52565b613b8a82601360008681526020019081526020016000206013015483613ee5565b604080516101808101825260608082526000602083018190529282018390528082018190526080820183905260a0820183905260c0820181905260e082018390526101008201839052610120820152610140810182905261016081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061406e57805160ff191683800117855561409b565b8280016001018555821561409b579182015b8281111561409b578251825591602001919060010190614080565b506140a79291506141bf565b5090565b604051806101e001604052806140bf6141d9565b81526020016140cc6141d9565b81526020016140d96141d9565b815260200160008152602001600081526020016000801916815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106141925782800160ff1982351617855561409b565b8280016001018555821561409b579182015b8281111561409b5782358255916020019190600101906141a4565b611bd391905b808211156140a757600081556001016141c5565b604080516060810182526000808252602082018190529181019190915290565b8035611b41816155b5565b60008083601f840112614215578182fd5b5081356001600160401b0381111561422b578182fd5b602083019150836020808302850101111561424557600080fd5b9250929050565b60008083601f84011261425d578182fd5b5081356001600160401b03811115614273578182fd5b60208301915083602082850101111561424557600080fd5b600082601f83011261429b578081fd5b81356001600160401b038111156142b0578182fd5b6142c3601f8201601f191660200161558f565b91508082528360208285010111156142da57600080fd5b8060208401602084013760009082016020015292915050565b6000610120808385031215614306578182fd5b61430f8161558f565b91505061431c83836141f9565b815260208201356020820152604082013560408201526060820135606082015261434983608084016141f9565b608082015261435b8360a084016141f9565b60a082015261436d8360c084016141f9565b60c082015260e082013560e0820152610100808301356001600160401b0381111561439757600080fd5b6143a38582860161428b565b82840152505092915050565b60006102008083850312156143c2578182fd5b6143cb8161558f565b9150506143d883836141f9565b8152602082013560208201526143f183604084016141f9565b60408201526060820135606082015261440d83608084016141f9565b608082015260a082013560a08201526144298360c084016141f9565b60c082015260e08281013590820152610100808301359082015261012080830135908201526101408083013590820152610160614468848285016141f9565b9082015261018061447b848483016141f9565b908201526101a0828101356001600160401b038082111561449b57600080fd5b6144a78683870161428b565b838501526101c0925082850135838501526101e09250828501359150808211156144d057600080fd5b506143a38582860161428b565b6000602082840312156144ee578081fd5b81356120d1816155b5565b60006020828403121561450a578081fd5b81516120d1816155b5565b60008060408385031215614527578081fd5b8235614532816155b5565b946020939093013593505050565b60008060008060608587031215614555578182fd5b8435614560816155b5565b93506020850135925060408501356001600160401b03811115614581578283fd5b61458d8782880161424c565b95989497509550505050565b600080602083850312156145ab578182fd5b82356001600160401b038111156145c0578283fd5b6145cc85828601614204565b90969095509350505050565b600080600080604085870312156145ed578182fd5b84356001600160401b0380821115614603578384fd5b61460f88838901614204565b90965094506020870135915080821115614627578384fd5b5061458d87828801614204565b600060208284031215614645578081fd5b815180151581146120d1578182fd5b600060208284031215614665578081fd5b5035919050565b60006020828403121561467d578081fd5b5051919050565b60008060408385031215614696578182fd5b50508035926020909101359150565b60008060008060008060c087890312156146bd578384fd5b86359550602087013594506040870135935060608701356146dd816155b5565b925060808701356001600160401b03808211156146f8578384fd5b6147048a838b0161428b565b935060a0890135915080821115614719578283fd5b5061472689828a0161428b565b9150509295509295509295565b60008060008060008060c0878903121561474b578384fd5b863595506020870135945060408701356001600160401b038082111561476f578586fd5b61477b8a838b0161428b565b95506060890135915061478d826155b5565b909350608088013590808211156146f8578384fd5b6000806000604084860312156147b6578081fd5b8335925060208401356001600160401b038111156147d2578182fd5b6147de8682870161424c565b9497909650939450505050565b6000602082840312156147fc578081fd5b81516001600160e01b0319811681146120d1578182fd5b60008060008060808587031215614828578182fd5b84356001600160401b038082111561483e578384fd5b61484a888389016142f3565b9550602087013591508082111561485f578384fd5b61486b888389016142f3565b94506040870135915080821115614880578384fd5b610160918701808903831315614894578485fd5b61489d8361558f565b6148a78a836141f9565b81526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a08201526148e88a60c084016141f9565b60c08201526148fa8a60e084016141f9565b60e082015261010093506149108a8584016141f9565b848201526101209350838201358482015261014093508382013583811115614936578687fd5b6149428b82850161428b565b85830152508095505050606087013591508082111561495f578283fd5b5061496c878288016143af565b91505092959194509250565b6001600160a01b03169052565b60008151808452815b818110156149aa5760208185018101518683018201520161498e565b818111156149bb5782602083870101525b50601f01601f19169290920160200192915050565b600061012060018060a01b0383511684526020830151602085015260408301516040850152606083015160608501526080830151614a116080860182614978565b5060a0830151614a2460a0860182614978565b5060c0830151614a3760c0860182614978565b5060e083015160e0850152610100808401518282870152614a5a83870182614985565b9695505050505050565b6bffffffffffffffffffffffff19606094851b811682526014820193909352921b16603482015260480190565b60609390931b6bffffffffffffffffffffffff191683526014830191909152603482015260540190565b918252602082015260400190565b6000828483379101908152919050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b901515815260200190565b90815260200190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b600083825260406020830152612d306040830184614985565b93845260ff9290921660208401526040830152606082015260800190565b60006020825282602083015282846040840137818301604090810191909152601f909201601f19160101919050565b6000602082526120d16020830184614985565b600060408252614c3b6040830185614985565b82810360208401526102b28185614985565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831390000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307833310000000000000000604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831310000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307834310000000000000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307833300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831330000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830350000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830370000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830310000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831610000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831620000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830340000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830360000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307835300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307834300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830320000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307836300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831340000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831360000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307832300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831380000000000000000604082015260600190565b60208082526013908201527234b73b30b634b216b9b4b3b730ba3ab93296bb60691b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831300000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307830330000000000000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526018908201527f696e76616c69642d7369676e61747572652d666f726d61740000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831350000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307832310000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831320000000000000000604082015260600190565b60208082526018908201527f694578656356352d6d617463684f72646572732d307831370000000000000000604082015260600190565b6000602082526120d160208301846149d0565b6000602082526153df602083018451614978565b6020830151604083015260408301516153fb6060840182614978565b5060608301516080830152608083015161541860a0840182614978565b5060a083015160c083015260c083015161543560e0840182614978565b5060e08301516101008381019190915283015161012080840191909152830151610140808401919091528301516101608084019190915283015161018061547e81850183614978565b84015190506101a061549284820183614978565b808501519150506102006101c081818601526154b2610220860184614985565b908601516101e08681019190915280870151868303601f1901848801529350906154dc8185614985565b979650505050505050565b6000602082526154fb602083018451614978565b602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015161553f60e0840182614978565b5060e083015161010061555481850183614978565b840151905061012061556884820183614978565b84015161014084810191909152840151610160808501529050612d30610180840182614985565b6040518181016001600160401b03811182821017156155ad57600080fd5b604052919050565b6001600160a01b03811681146155ca57600080fd5b5056fea26469706673582212207fdd385720bc01092a56cada07c8fda39acf7c1c110d30e34e9a7c2cfe4755b864736f6c63430006060033",
  "immutableReferences": {},
  "sourceMap": "585:31702:19:-:0;;;832:17:66;852:12;-1:-1:-1;;;;;852:10:66;:12;:::i;:::-;874:6;:18;;-1:-1:-1;;;;;;874:18:66;-1:-1:-1;;;;;874:18:66;;;;;;;907:43;;874:18;;-1:-1:-1;874:18:66;-1:-1:-1;;;;;;;;;;;907:43:66;874:6;;907:43;-1:-1:-1;124:19:57;-1:-1:-1;;;;;124:17:57;:19;:::i;:::-;585:31702:19;;735:104:65;822:10;735:104;:::o;1656:145:66:-;1247:12;-1:-1:-1;;;;;1247:10:66;:12;:::i;:::-;1237:6;;-1:-1:-1;;;;;1237:6:66;;;:22;;;1229:67;;;;-1:-1:-1;;;1229:67:66;;;;;;;;;;;;;;;;;1762:1:::1;1746:6:::0;;1725:40:::1;::::0;-1:-1:-1;;;;;1746:6:66;;::::1;::::0;-1:-1:-1;;;;;;;;;;;1725:40:66;1762:1;;1725:40:::1;1792:1;1775:19:::0;;-1:-1:-1;;;;;;1775:19:66::1;::::0;;1656:145::o;346:407:-1:-;537:2;551:47;;;522:18;;;864:19;266:34;904:14;;;246:55;320:12;;;508:245;;585:31702:19;;;;;;",
  "deployedSourceMap": "585:31702:19:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;585:31702:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;5080:186:19;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5900:8855;;;;;;;;;:::i;:::-;;;;;;;;16049:2806;;;;;;;;;:::i;:::-;;14993:977;;;;;;;;;:::i;1656:145:66:-;;;:::i;1033:77::-;;;:::i;:::-;;;;;;;;31551:267:19;;;;;;;;;:::i;21964:590::-;;;;;;;;;:::i;5425:214::-;;;;;;;;;:::i;21000:961::-;;;;;;;;;:::i;5269:153::-;;;;;;;;;:::i;22633:3098::-;;;;;;;;;:::i;1950:240:66:-;;;;;;;;;:::i;19972:1025:19:-;;;;;;;;;:::i;32003:282::-;;;;;;;;;:::i;31821:179::-;;;;;;;;;:::i;18858:1111::-;;;;;;;;;:::i;5080:186::-;5199:4;5217:45;5233:9;5244:5;5251:10;;5217:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5217:15:19;;-1:-1:-1;;;5217:45:19:i;:::-;5210:52;5080:186;-1:-1:-1;;;;;5080:186:19:o;5900:8855::-;6179:7;6290:11;6340:13;:17;;;6320:13;:17;;;6304:9;:13;;;:33;:53;6290:67;;6405:16;:25;;;6369:13;:22;;;:61;6361:105;;;;-1:-1:-1;;;6361:105:19;;;;;;;;;;;;;;;;;6514:12;:19;6478:22;;;;:55;6470:105;;;;-1:-1:-1;;;6470:105:19;;;;;;;;;6623:16;:22;;;6587:13;:19;;;:58;;6579:105;;;;-1:-1:-1;;;6579:105:19;;;;;;;;;6732:9;:18;;;6696:13;:25;;;:54;;6688:105;;;;-1:-1:-1;;;6688:105:19;;;;;;;;;6841:13;:26;;;6805:13;:29;;;:62;;6797:105;;;;-1:-1:-1;;;6797:105:19;;;;;;;;;6950:16;:32;;;6914:13;:32;;;:68;;6906:105;;;;-1:-1:-1;;;6906:105:19;;;;;;;;;7030:20;;;;7029:21;7023:27;;:39;7015:105;;;;-1:-1:-1;;;7015:105:19;;;;;;;;;7139:13;;;;7133:19;;7132:25;;-1:-1:-1;;;7132:32:19;:39;7124:105;;;;-1:-1:-1;;;7124:105:19;;;;;;;;;7304:13;;7279:17;;-1:-1:-1;;;;;7279:38:19;;;;;;7271:189;;;;-1:-1:-1;;;7271:189:19;;;;;;;;;7497:13;:21;;;-1:-1:-1;;;;;7472:46:19;:13;:21;;;-1:-1:-1;;;;;7472:46:19;;7464:189;;;;-1:-1:-1;;;7464:189:19;;;;;;;;;7665:24;;;;-1:-1:-1;;;;;7665:48:19;;;:152;;;7717:100;7732:13;:24;;;7768:16;:27;;;2309:1:4;7717:14:19;:100::i;:::-;7657:189;;;;-1:-1:-1;;;7657:189:19;;;;;;;;;7902:25;;;;-1:-1:-1;;;;;7902:48:19;;;:152;;;7954:100;7969:9;:25;;;8005:13;:21;;;2309:1:4;7954:14:19;:100::i;:::-;7894:189;;;;-1:-1:-1;;;7894:189:19;;;;;;;;;8095:28;;;;-1:-1:-1;;;;;8095:48:19;;;:152;;;8147:100;8162:9;:28;;;8198:16;:27;;;2309:1:4;8147:14:19;:100::i;:::-;8087:189;;;;-1:-1:-1;;;8087:189:19;;;;;;;;;8288:27;;;;-1:-1:-1;;;;;8288:48:19;;;:152;;;8340:100;8355:9;:27;;;8391:13;:23;;;2309:1:4;8340:14:19;:100::i;:::-;8280:189;;;;-1:-1:-1;;;8280:189:19;;;;;;;;;8481:25;;;;-1:-1:-1;;;;;8481:48:19;;;:152;;;8533:100;8548:13;:25;;;8584:9;:13;;;2309:1:4;8533:14:19;:100::i;:::-;8473:189;;;;-1:-1:-1;;;8473:189:19;;;;;;;;;8674:32;;;;-1:-1:-1;;;;;8674:48:19;;;:152;;;8726:100;8741:13;:32;;;8777:16;:27;;;2309:1:4;8726:14:19;:100::i;:::-;8666:189;;;;-1:-1:-1;;;8666:189:19;;;;;;;;;8867:31;;;;-1:-1:-1;;;;;8867:48:19;;;:152;;;8919:100;8934:13;:31;;;8970:13;:23;;;2309:1:4;8919:14:19;:100::i;:::-;8859:189;;;;-1:-1:-1;;;8859:189:19;;;;;;;;;9060:28;;;;-1:-1:-1;;;;;9060:48:19;;;:152;;;9112:100;9127:16;:28;;;9163:9;:13;;;2309:1:4;9112:14:19;:100::i;:::-;9052:189;;;;-1:-1:-1;;;9052:189:19;;;;;;;;;9253:32;;;;-1:-1:-1;;;;;9253:48:19;;;:152;;;9305:100;9320:16;:32;;;9356:13;:21;;;2309:1:4;9305:14:19;:100::i;:::-;9245:189;;;;-1:-1:-1;;;9245:189:19;;;;;;;;;9446:34;;;;-1:-1:-1;;;;;9446:48:19;;;:152;;;9498:100;9513:16;:34;;;9549:13;:23;;;2309:1:4;9498:14:19;:100::i;:::-;9438:189;;;;-1:-1:-1;;;9438:189:19;;;;;;;;;9675:19;;:::i;:::-;9715:21;;-1:-1:-1;;;;;9715:35:19;;;9698:14;;;:52;9803:16;;-1:-1:-1;;;9803:16:19;;9785:59;;9803:14;;;;:16;;:9;;:16;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9803:16:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9803:16:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9803:16:19;;;;;;;;;9821:22;;9785:17;:59::i;:::-;9764:80;;;9869:29;;;;;;;9848:16;;;:50;9927:13;;9923:26;;;-1:-1:-1;;;9923:26:19;;;;-1:-1:-1;;;;;9923:24:19;;;;;;:26;;;;;;;;;;:24;:26;;;2:2:-1;;;;27:1;24;17:12;2:2;9923:26:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9923:26:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9923:26:19;;;;;;;;;-1:-1:-1;;;;;9902:47:19;;;:12;;;;:47;;;;9962:13;;9989;;9962:41;;-1:-1:-1;;;9962:41:19;;:13;;;:26;;:41;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9962:41:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9962:41:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;9962:41:19;;;;;;;;;9954:116;;;;-1:-1:-1;;;9954:116:19;;;;;;;;;10082:79;10112:3;:12;;;10126:3;:18;;;10146:9;:14;;;10082:29;:79::i;:::-;10074:116;;;;-1:-1:-1;;;10074:116:19;;;;;;;;;10212:3;:14;;;10208:554;;;10314:20;;-1:-1:-1;;;10314:20:19;;10296:63;;10314:18;;;;:20;;:13;;:20;;;;10296:63;10271:22;;;:88;;;10389:33;;;;;;;10364:20;;;:58;10460:21;;10452:38;;;-1:-1:-1;;;10452:38:19;;;;-1:-1:-1;;;;;10452:36:19;;;;;;:38;;;;;;;;;;:36;:38;;;2:2:-1;;;;27:1;24;17:12;2:2;10452:38:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10452:38:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10452:38:19;;;;;;;;;-1:-1:-1;;;;;10427:63:19;;;:16;;;:63;10504:17;;10535:21;;10504:53;;-1:-1:-1;;;10504:53:19;;:17;;;;;:30;;:53;;10535:21;10504:53;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10504:53:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10504:53:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10504:53:19;;;;;;;;;10496:128;;;;-1:-1:-1;;;10496:128:19;;;;;;;;;10637:91;10667:3;:16;;;10685:3;:22;;;10709:13;:18;;;10637:29;:91::i;:::-;10629:128;;;;-1:-1:-1;;;10629:128:19;;;;;;;;;10828:23;;-1:-1:-1;;;10828:23:19;;10810:66;;10828:21;;;;:23;;:16;;:23;;;;10810:66;10782:25;;;:94;;;10908:36;;;;;;;10880:23;;;:64;10987:27;;10976:47;;;-1:-1:-1;;;10976:47:19;;;;-1:-1:-1;;;;;10976:45:19;;;;;;:47;;;;;;;;;;:45;:47;;;2:2:-1;;;;27:1;24;17:12;2:2;10976:47:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10976:47:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10976:47:19;;;;;;;;;-1:-1:-1;;;;;10948:75:19;;;:19;;;:75;11036:20;;11070:27;;11036:62;;-1:-1:-1;;;11036:62:19;;:20;;;;;:33;;:62;;11070:27;11036:62;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11036:62:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11036:62:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;11036:62:19;;;;;;;;;11028:137;;;;-1:-1:-1;;;11028:137:19;;;;;;;;;11177:100;11207:3;:19;;;11228:3;:25;;;11255:16;:21;;;11177:29;:100::i;:::-;11169:137;;;;-1:-1:-1;;;11169:137:19;;;;;;;;;11367:20;;-1:-1:-1;;;11367:20:19;;11349:63;;11367:18;;;;:20;;:13;;:20;;;;11349:63;11324:22;;;:88;;;11441:33;;;;;;11416:20;;;:58;11516:23;;;;11565:18;;;;11486:98;;11324:88;11486:29;:98::i;:::-;11478:135;;;;-1:-1:-1;;;11478:135:19;;;;;;;;;11748:16;;;;;11654:14;11737:35;;;:10;:35;;;;;;;;11709:16;;;;:64;;;:20;:64;:::i;:::-;11672:101;;11786:3;:14;;;:102;;11882:6;11786:102;;;11853:20;;;;11842:35;;;;:10;:35;;;;;;;;11814:20;;;;11803:76;;11814:64;;:20;:64;:24;:64;:::i;:::-;11803:6;;:76;:10;:76;:::i;:::-;11968:23;;;;11957:35;;;;:10;:35;;;;;;;;11929:23;;;;11777:111;;-1:-1:-1;11918:76:19;;11929:64;;;:27;:64;:::i;11918:76::-;12074:20;;;;12063:35;;;;:10;:35;;;;;;12035:20;;;;11892:102;;-1:-1:-1;12024:76:19;;12035:64;;;:24;:64;:::i;12024:76::-;11998:102;;12121:1;12112:6;:10;12104:47;;;;-1:-1:-1;;;12104:47:19;;;;;;;;;12228:20;;;;12180:14;12279:32;;;:10;:32;;;;;;;;;12207:132;;12180:14;;12207:132;;12228:20;;12207:132;;;;;;;26:21:-1;;;-1:-1;;22:32;6:49;;12207:132:19;;;12197:143;;49:4:-1;12197:143:19;;;;12345:33;12381:15;;;:7;:15;;;;;12428:13;;12400:41;;-1:-1:-1;;;;;;12400:41:19;;;-1:-1:-1;;;;;12400:41:19;;;;;;12473:12;;;;-1:-1:-1;12445:14:19;;:40;;;;;;;;;;;;;12517:18;;;;12489:14;;;:46;12567:16;;;;12539:18;;;:44;;;;;;;;;;;;;12615:21;;12539:12;;;12587:49;;;;;;;;;;;;;;12668:14;;;;12197:143;;-1:-1:-1;12668:47:19;;12714:1;12668:47;;;12685:13;:26;;;12668:47;12640:18;;;:75;12747:27;;12719:15;;;:55;;-1:-1:-1;;;;;12719:55:19;;;-1:-1:-1;;;;;;12719:55:19;;;;;;;;12806:19;;;12778:21;;;:47;;;;;;;;;;;12857:32;;;;12829:21;;;:60;12921:19;;;;:26;;12719:55;12921:26;:23;:26;:::i;:::-;12893:10;;;:54;12979:22;;;;12951:13;;;:50;13005:8;;;:31;;;13068:23;;;;13040:14;;;:51;;-1:-1:-1;;;;;13040:51:19;;;-1:-1:-1;;;;;;13040:51:19;;;;;;;13123:25;;;;13095:16;;;:53;;;;;;;;;;;;;;13180:22;;;;13152:13;;;:50;;;;;;;;;;;13234:20;;;;13206:48;;;;:11;;;;:48;;;;;;:::i;:::-;-1:-1:-1;13286:3:19;13258:14;;;:31;13332:20;;;;13321:32;;;;:10;:32;;;;;;;;;;13293:13;;;:60;13357:12;;;:34;;;13478:27;;13467:66;;-1:-1:-1;;;13467:66:19;;;;13423:111;;-1:-1:-1;;;;;13467:64:19;;;;;;:66;;;;;;;;;;;:64;:66;;;2:2:-1;;;;27:1;24;17:12;2:2;13467:66:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13467:66:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13467:66:19;;;;;;;;;13423:32;;;;;:111;:43;:111;:::i;:::-;13395:4;:16;;:139;;;;13577:16;:27;;;-1:-1:-1;;;;;13566:68:19;;:70;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13566:70:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13566:70:19;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13566:70:19;;;;;;;;;13538:25;;;:98;13723:16;;;;;13712:35;;;;:10;:35;;;;;;;:68;;13769:6;13712:68;:39;:68;:::i;:::-;13685:16;;;;;13674:35;;;;:10;:35;;;;;;:106;13862:14;;;;13822:68;;13862:27;;13888:1;13862:27;;;13879:6;13862:27;13833:20;;;;13822:35;;;;:10;:35;;;;;;;:68;:39;:68;:::i;:::-;13795:20;;;;13784:35;;;;:10;:35;;;;;;:106;;;;13943:23;;;;13932:35;;;;:68;;13989:6;13932:68;:39;:68;:::i;:::-;13905:23;;;;13894:35;;;;:10;:35;;;;;;:106;;;;14053:20;;;;14042:35;;;;:68;;14099:6;14042:68;:39;:68;:::i;:::-;14015:20;;;;14004:35;;;;:10;:35;;;;;:106;14146:14;;;;14216:21;;;;14188:18;;;;14216:21;14165:14;;;14137:121;;-1:-1:-1;;;;;14146:14:19;;14165:89;;14247:6;;14165:73;;14216:21;14165:42;;:14;:42;:22;:42;:::i;:::-;:50;:73;:50;:73;:::i;:::-;:81;:89;:81;:89;:::i;:::-;14137:4;:121::i;:::-;14271:21;;;;14297;;;;14262:194;;-1:-1:-1;;;;;14271:21:19;;14297:104;;14394:6;;14297:60;;1936:2:4;14297:60:19;:36;:60;:::i;14262:194::-;14514:15;;;:23;14498:48;;-1:-1:-1;;;;;14514:23:19;;;;14498:48;;;;14539:6;;14498:48;;;;;;;;;;14595:138;14613:6;14624:3;:16;;;14645:3;:20;;;14670:3;:23;;;14698:3;:20;;;14723:6;14595:138;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14745:6:19;5900:8855;-1:-1:-1;;;;;;;;5900:8855:19:o;16049:2806::-;16270:41;16322:16;;;:7;:16;;;;;;;;16394:15;:24;;;;;16322:16;;16270:41;;16419:12;:10;:12::i;:::-;-1:-1:-1;;;;;16394:38:19;-1:-1:-1;;;;;16394:38:19;;;;;;;;;;;;16342:90;;16436:41;;:::i;:::-;16496:11;;;;;16488:20;;;;:7;:20;;;;;;;;;16436:72;;;;;;;;;-1:-1:-1;;;;;16436:72:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16436:72:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;16488:20;;16436:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16436:72:19;;;-1:-1:-1;;16436:72:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16550:37:19;16521:11;;;;:66;;;;;;;;;16513:82;;12:1:-1;9;2:12;16513:82:19;16636:3;16607:4;:25;;;:32;16599:82;;12:1:-1;9;2:12;16599:82:19;16722:44;16693:19;;;;:73;;;;;;;;;16685:82;;12:1:-1;9;2:12;16685:82:19;-1:-1:-1;;;;;16822:31:19;;;;;:61;;-1:-1:-1;16858:8:19;;;;16867:2;16858:12;;;-1:-1:-1;;;16858:19:19;:24;16822:61;16814:70;;12:1:-1;9;2:12;16814:70:19;16999:261;-1:-1:-1;;;;;17021:31:19;;;;;;:60;;-1:-1:-1;17056:11:19;;-1:-1:-1;;;;;17056:11:19;:25;;17021:60;17019:102;;17100:4;:15;;;:21;;;17019:102;;;17086:11;;-1:-1:-1;;;;;17086:11:19;17019:102;17126:107;17178:12;:10;:12::i;:::-;17196:7;17209:17;17156:75;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17156:75:19;;;17146:86;;;;;;17126:19;:107::i;:::-;17238:18;16999:15;:261::i;:::-;16991:270;;12:1:-1;9;2:12;16991:270:19;-1:-1:-1;;;;;17303:31:19;;;;:185;;;17338:150;17358:17;17380:87;17432:11;17449;17410:55;;;;;;;;;;17380:87;17472:12;17338:15;:150::i;:::-;17295:194;;12:1:-1;9;2:12;17295:194:19;17525:82;;17557:50;-1:-1:-1;;17525:82:19;;;;;;;17611:23;;:43;;;17658:23;;;:43;;;17705:29;;;:49;;-1:-1:-1;;;;;;17705:49:19;-1:-1:-1;;;;;17705:49:19;;;;;17758:17;;;17781:12;:10;:12::i;:::-;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;17758:36:19;;;;;;;;;;-1:-1:-1;;;;;;17758:36:19;-1:-1:-1;;;;;17758:36:19;;;;;;;;;;17816:11;;;17799:43;;17829:12;:10;:12::i;:::-;17799:16;:43::i;:::-;17876:12;:10;:12::i;:::-;-1:-1:-1;;;;;17852:50:19;17867:7;17852:50;17890:11;17852:50;;;;;;;;;;;;;;;18364:43;18410:20;;;:11;:20;;;;;;18452:49;18499:1;18452:42;18492:1;18452:35;18492:1;18452:14;18364:43;18467:12;:10;:12::i;:::-;-1:-1:-1;;;;;18452:28:19;;;;;;;;;;;;-1:-1:-1;18452:28:19;;;:35;:32;:35;:::i;:::-;:39;:42;:39;:42;:::i;:::-;:46;:49;:46;:49;:::i;:::-;18505:13;18522:28;;;;;;;;;;;18435:66;;-1:-1:-1;18571:35:19;18522:28;18571:24;18435:66;18571:12;18522:28;18581:1;18571:12;:9;:12;:::i;:35::-;18554:52;;18642:12;:6;:10;:12::i;:::-;18611:19;;;:43;18689:15;:28;;;;;;;;;;;:39;;18722:5;18689:39;:32;:39;:::i;:::-;18658:15;:28;;;;;;;;;;:70;18763:15;;;;:26;;18783:5;18763:26;:19;:26;:::i;:::-;18732:15;;;:57;18815:36;18830:7;18839:11;18815:14;:36::i;:::-;16049:2806;;;;;;;;;;;;;:::o;14993:977::-;15069:7;15083:32;;:::i;:::-;15118:16;;;;:7;:16;;;;;;;;;15083:51;;;;;;;;;-1:-1:-1;;;;;15083:51:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15083:51:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;15118:16;;15083:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15154:4;:13;;;15147:3;:20;;15139:47;;12:1:-1;9;2:12;15139:47:19;15223:12;;;;15205:13;;;;:31;;;:17;:31;:::i;:::-;15198:3;:38;15190:47;;12:1:-1;9;2:12;15190:47:19;15242:14;15287:7;15296:3;15270:30;;;;;;;;;;;;;;-1:-1:-1;;26:21;;;22:32;6:49;;15270:30:19;;;15260:41;;49:4:-1;15260:41:19;;;;15305:33;15341:15;;;:7;:15;;;;;;15260:41;;-1:-1:-1;15341:15:19;15368:11;;;;:51;;;;;;;;;15360:60;;12:1:-1;9;2:12;15360:60:19;15425:65;;-1:-1:-1;;15425:65:19;15453:37;15425:65;;;;;15494:11;;:35;;;15533:8;;;:31;;;15609:13;;;;15596:12;:27;;:12;;15609:13;15596:27;;;;;;;;;;;;;;;;;;;:44;;;15568:12;;;:72;;;15722:14;;;;15672:65;;:45;;1755:1:4;15672:16:19;:45::i;:65::-;15644:25;;;:93;15819:14;;;;15769:12;;;;:65;;15819:14;15769:45;;1875:2:4;15769:45:19;:16;:45;:::i;:65::-;15741:18;;;:93;15862:19;;;;:11;:19;;;;;;15890:1;15862:25;;;:29;15924:15;;;;:23;15901:47;;-1:-1:-1;;;;;15901:47:19;;;;15874:6;;15901:47;;15862:19;15901:47;-1:-1:-1;15960:6:19;-1:-1:-1;;14993:977:19;;;;;:::o;1656:145:66:-;1247:12;:10;:12::i;:::-;1237:6;;-1:-1:-1;;;;;1237:6:66;;;:22;;;1229:67;;;;-1:-1:-1;;;1229:67:66;;;;;;;;;1762:1:::1;1746:6:::0;;1725:40:::1;::::0;-1:-1:-1;;;;;1746:6:66;;::::1;::::0;1725:40:::1;::::0;1762:1;;1725:40:::1;1792:1;1775:19:::0;;-1:-1:-1;;;;;;1775:19:66::1;::::0;;1656:145::o;1033:77::-;1071:7;1097:6;-1:-1:-1;;;;;1097:6:66;1033:77;;:::o;31551:267:19:-;31662:4;31681:29;;;31673:38;;12:1:-1;9;2:12;31673:38:19;31720:6;31715:85;31732:18;;;31715:85;;;31764:31;31775:7;;31783:1;31775:10;;;;;;;;;;;;;31787:4;;31792:1;31787:7;;;;;;;;;;;;;31764:10;:31::i;:::-;-1:-1:-1;31752:3:19;;31715:85;;;-1:-1:-1;31810:4:19;;31551:267;-1:-1:-1;;;;;31551:267:19:o;21964:590::-;22021:33;22057:16;;;:7;:16;;;;;22100:37;22085:11;;;;:52;;;;;;;;;:118;;;-1:-1:-1;22163:40:19;22148:11;;;;:55;;;;;;;;;22085:118;22077:127;;12:1:-1;9;2:12;22077:127:19;22238:3;22216:4;:18;;;:25;;22208:34;;12:1:-1;9;2:12;22208:34:19;22247:51;;-1:-1:-1;;22247:51:19;22261:37;22247:51;;;;22348:11;;;22337:32;;22361:7;22337:10;:32::i;:::-;22378:9;22373:148;22397:17;;;:24;22393:28;;22373:148;;;22435:14;22452:4;:17;;22470:1;22452:20;;;;;;;;;;;;;;;;;;;22496:11;;;-1:-1:-1;;;;;22452:20:19;;;;-1:-1:-1;22477:39:19;;22452:20;22477:18;:39::i;:::-;-1:-1:-1;22423:3:19;;22373:148;;;-1:-1:-1;22530:20:19;;22542:7;;22530:20;;;;;21964:590;;:::o;5425:214::-;5558:4;5576:59;5606:9;5617:5;5624:10;;5576:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5576:29:19;;-1:-1:-1;;;5576:59:19:i;21000:961::-;239:32:7;247:16;;;:7;:16;;;;;;;;:23;;;239:32;;:7;:32;;;;;:49;;;21109:7:19;;-1:-1:-1;;;;;239:49:7;223:12;:10;:12::i;:::-;-1:-1:-1;;;;;223:65:7;;215:74;;12:1:-1;9;2:12;215:74:7;21123:33:19::1;21159:16:::0;;;:7:::1;:16;::::0;;;;21179:33:::1;;:::i;:::-;21223:11;::::0;;::::1;::::0;21215:20:::1;::::0;;;:7:::1;:20;::::0;;;;;;;;21179:56;;;;;;;;;-1:-1:-1;;;;;21179:56:19;;::::1;;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;;;::::1;;::::0;;::::1;-1:-1:-1::0;;21179:56:19;;;::::1;::::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;21215:20;;21179:56;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;21179:56:19;;;-1:-1:-1;;21179:56:19::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;;;;;-1:-1:-1;21270:40:19::1;21248:11:::0;;::::1;;:62;::::0;::::1;;;;;;;21240:107;;12:1:-1;9::::0;2:12:::1;21240:107:19;21381:3;21359:4;:18;;;:25;21351:107;;12:1:-1;9::::0;2:12:::1;21351:107:19;21492:4;:18;;;21470:4;:18;;;:40;:98;;;;21536:1;21515:4;:18;;;:22;:52;;;;;21564:3;21541:4;:19;;;:26;;21515:52;21462:107;;12:1:-1;9::::0;2:12:::1;21462:107:19;21582:13;::::0;::::1;::::0;-1:-1:-1;;;;;21582:27:19::1;::::0;;:71:::1;;;21636:4;:17;;;21623:8;;21613:19;;;;;;;;;;;;;;;;:40;21582:71;21574:80;;12:1:-1;9::::0;2:12:::1;21574:80:19;21659:55:::0;;-1:-1:-1;;21659:55:19::1;21674:40;21659:55;::::0;;21718:23:::1;:12;::::0;::::1;21733:8:::0;;21718:23:::1;:::i;:::-;;21791:33;21803:4;:11;;;21816:7;21791:11;:33::i;:::-;21828:26;21846:7;21828:17;:26::i;:::-;21900:7;21887:31;21909:8;;21887:31;;;;;;;;;;;;;;;;21923:34;21939:7;21948:8;;21923:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;21923:15:19::1;::::0;-1:-1:-1;;;21923:34:19:i:1;:::-;293:1:7;;21000:961:19::0;;;;:::o;5269:153::-;5364:4;5382:36;5401:9;5412:5;5382:18;:36::i;:::-;5375:43;5269:153;-1:-1:-1;;;5269:153:19:o;22633:3098::-;22864:41;22916:16;;;:7;:16;;;;;;;;22988:15;:24;;;;;22916:16;;22864:41;;23013:12;:10;:12::i;:::-;-1:-1:-1;;;;;22988:38:19;-1:-1:-1;;;;;22988:38:19;;;;;;;;;;;;22936:90;;23030:41;;:::i;:::-;23090:11;;;;;23082:20;;;;:7;:20;;;;;;;;;23030:72;;;;;;;;;-1:-1:-1;;;;;23030:72:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23030:72:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;23082:20;;23030:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23030:72:19;;;-1:-1:-1;;23030:72:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23144:37:19;23115:11;;;;:66;;;;;;;;;23107:75;;12:1:-1;9;2:12;23107:75:19;23223:3;23194:4;:25;;;:32;23186:75;;12:1:-1;9;2:12;23186:75:19;23273:17;;;:24;:30;23265:75;;12:1:-1;9;2:12;23265:75:19;23352:4;:10;;;23381:1;23352:30;23344:75;;12:1:-1;9;2:12;23344:75:19;23476:18;23538:7;23547:13;23507:54;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;23507:54:19;;;23497:65;;;;;;23476:86;;23566:18;23614:12;:10;:12::i;:::-;23628:7;23637:13;23597:54;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;23597:54:19;;;23587:65;;;;;;23566:86;;23690:1;-1:-1:-1;;;;;23665:27:19;:4;:13;;;-1:-1:-1;;;;;23665:27:19;;:67;;;-1:-1:-1;23696:19:19;;;;;;:36;;23665:67;23657:76;;12:1:-1;9;2:12;23657:76:19;-1:-1:-1;;;;;23788:31:19;;;;;:61;;-1:-1:-1;23824:8:19;;;;23833:2;23824:12;;;-1:-1:-1;;;23824:19:19;:24;23788:61;23780:70;;12:1:-1;9;2:12;23780:70:19;23965:261;-1:-1:-1;;;;;23987:31:19;;;;;;:60;;-1:-1:-1;24022:11:19;;-1:-1:-1;;;;;24022:11:19;:25;;23987:60;23985:102;;24066:4;:15;;;:21;;;23985:102;;;24052:11;;-1:-1:-1;;;;;24052:11:19;23985:102;24092:107;24144:12;:10;:12::i;:::-;24162:7;24175:17;24122:75;;;;;;;;;;;24092:107;24204:18;23965:15;:261::i;:::-;23957:270;;12:1:-1;9;2:12;23957:270:19;-1:-1:-1;;;;;24269:31:19;;;;:183;;;24304:148;24324:17;24346:85;24398:10;24414;24376:53;;;;;;;;;;24346:85;24436:12;24304:15;:148::i;:::-;24261:192;;12:1:-1;9;2:12;24261:192:19;24458:77;;24490:45;-1:-1:-1;;24458:77:19;;;;;;;-1:-1:-1;24539:23:19;;:42;;;24585:23;;;:42;;;24631:29;;;;:49;;-1:-1:-1;;;;;;24631:49:19;-1:-1:-1;;;;;24631:49:19;;;;;24685:72;;;;;;;;;24793:23;24761:19;;;:55;24852:12;;;;:48;;24896:3;;24852:39;;:16;:39::i;:48::-;24820:19;;;:80;24936:1;24904:18;;;:33;;;24941:18;;;:33;24978:17;;;:45;;;25027:40;;;;:12;;;;:40;;;;;:::i;:::-;;25071:4;:17;;25094:12;:10;:12::i;:::-;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;25071:36:19;;;;;;;;;;-1:-1:-1;;;;;;25071:36:19;-1:-1:-1;;;;;25071:36:19;;;;;;;;;;25124:11;;;25112:33;;25137:7;25112:11;:33::i;:::-;25193:20;25219:77;25252:43;25269:4;:25;;;25260:3;25252:16;;:43;;;;:::i;:::-;25219:15;;;;;:21;;;:77;:32;:77;:::i;:::-;25193:103;;25300:23;25326:39;25352:12;25326:4;:15;;;:21;;;:25;;:39;;;;:::i;:::-;25300:65;;25369:58;25391:12;:10;:12::i;:::-;25405;25419:7;25369:21;:58::i;:::-;25431;25451:4;:11;;;25464:15;25481:7;25431:19;:58::i;:::-;25523:12;:10;:12::i;:::-;-1:-1:-1;;;;;25499:49:19;25514:7;25499:49;25537:10;25499:49;;;;;;;;;;;;;;;25571:7;25557:34;25580:10;25557:34;;;;;;;;;;;;;;;25620:12;:10;:12::i;:::-;-1:-1:-1;;;;;25600:48:19;25611:7;25600:48;25634:13;25600:48;;;;;;;;;;;;;;;25670:7;25657:31;25679:8;25657:31;;;;;;;;;;;;;;;25693:34;25709:7;25718:8;25693:15;:34::i;1950:240:66:-;1247:12;:10;:12::i;:::-;1237:6;;-1:-1:-1;;;;;1237:6:66;;;:22;;;1229:67;;;;-1:-1:-1;;;1229:67:66;;;;;;;;;-1:-1:-1;;;;;2038:22:66;::::1;2030:73;;;;-1:-1:-1::0;;;2030:73:66::1;;;;;;;;;2139:6;::::0;;2118:38:::1;::::0;-1:-1:-1;;;;;2118:38:66;;::::1;::::0;2139:6;::::1;::::0;2118:38:::1;::::0;::::1;2166:6;:17:::0;;-1:-1:-1;;;;;;2166:17:66::1;-1:-1:-1::0;;;;;2166:17:66;;;::::1;::::0;;;::::1;::::0;;1950:240::o;19972:1025:19:-;239:32:7;247:16;;;:7;:16;;;;;;;;:23;;;239:32;;:7;:32;;;;;:49;;;20041:7:19;;-1:-1:-1;;;;;239:49:7;223:12;:10;:12::i;:::-;-1:-1:-1;;;;;223:65:7;;215:74;;12:1:-1;9;2:12;215:74:7;20055:33:19::1;20091:16:::0;;;:7:::1;:16;::::0;;;;20142:40:::1;20119:11:::0;;::::1;;:63;::::0;::::1;;;;;;;20111:72;;12:1:-1;9::::0;2:12:::1;20111:72:19;20218:3;20195:4;:18;;;:26;20187:72;;12:1:-1;9::::0;2:12:::1;20187:72:19;20294:3;20271:4;:19;;;:26;;:53;;;;-1:-1:-1::0;20301:18:19::1;::::0;::::1;::::0;:23;20271:53:::1;20263:72;;12:1:-1;9::::0;2:12:::1;20263:72:19;20345:9;20340:284;20364:17;::::0;::::1;:24:::0;20360:28;::::1;20340:284;;;20402:14;20419:4;:17;;20437:1;20419:20;;;;;;;;;::::0;;;::::1;::::0;;;;;::::1;::::0;20495:19:::1;::::0;::::1;::::0;20448:24;;;:15:::1;:24:::0;;;;;;-1:-1:-1;;;;;20419:20:19;;::::1;20448:32:::0;;;;;;;;;;;20419:20;20448:43:::1;::::0;20419:20;;-1:-1:-1;20448:66:19::1;20444:176;;;20525:24;::::0;;;:15:::1;:24;::::0;;;;;;;-1:-1:-1;;;;;20525:32:19;::::1;::::0;;;;;;;:89;;-1:-1:-1;;20525:89:19::1;20567:47;20525:89;::::0;;20444:176:::1;-1:-1:-1::0;20390:3:19::1;;20340:284;;;-1:-1:-1::0;20628:43:19::1;20674:20:::0;;;:11:::1;:20;::::0;;;;;;;20752:19:::1;::::0;::::1;::::0;20736:36;;;;;;;;;;20716:15:::1;::::0;::::1;::::0;:57:::1;::::0;::::1;:19;:57;:::i;:::-;20698:15;::::0;;::::1;:75:::0;;;;20793:19:::1;::::0;::::1;::::0;;20816:1:::1;20777:36:::0;;;::::1;::::0;;;;;;;:40;;;20822:59;;-1:-1:-1;;20822:59:19::1;::::0;;::::1;::::0;;20885:25;;;;20914:19:::1;::::0;::::1;:23:::0;;;20941:18:::1;::::0;::::1;:23:::0;;;20974:19;;20985:7;;20974:19:::1;::::0;::::1;293:1:7;;19972:1025:19::0;;:::o;32003:282::-;32122:4;32141:29;;;32133:38;;12:1:-1;9;2:12;32133:38:19;32180:6;32175:92;32192:18;;;32175:92;;;32224:38;32230:31;32241:7;;32249:1;32241:10;;;;;;;;;;;;;32253:4;;32258:1;32253:7;;;;;;32224:38;32212:3;;32175:92;;31821:179;31900:4;;31911:71;31928:18;;;31911:71;;;31960:17;31966:7;;31974:1;31966:10;;;;;;;;;;;;;31960:5;:17::i;:::-;31948:3;;31911:71;;;-1:-1:-1;31992:4:19;;31821:179;-1:-1:-1;;;31821:179:19:o;18858:1111::-;18953:41;19005:16;;;:7;:16;;;;;;;;19077:15;:24;;;;;19005:16;;18953:41;;19102:12;:10;:12::i;:::-;-1:-1:-1;;;;;19077:38:19;;;;;;;;;;;;-1:-1:-1;19077:38:19;;-1:-1:-1;19154:40:19;19127:11;;;;:67;;;;;;;;;19119:101;;12:1:-1;9;2:12;19119:101:19;19259:3;19232:4;:19;;;:30;19224:101;;12:1:-1;9;2:12;19224:101:19;19364:50;19337:19;;;;:77;;;;;;;;;19329:101;;12:1:-1;9;2:12;19329:101:19;19469:4;:19;;;19442:12;:23;;;:46;19434:101;;12:1:-1;9;2:12;19434:101:19;19615:7;19624:13;19584:54;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;19584:54:19;;;19574:65;;;;;;19547:12;:23;;;:92;19539:101;;12:1:-1;9;2:12;19539:101:19;19706:12;:10;:12::i;:::-;19720:7;19729:13;19689:54;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;19689:54:19;;;19679:65;;;;;;19652:12;:23;;;:92;19644:101;;12:1:-1;9;2:12;19644:101:19;19750:67;;-1:-1:-1;;19750:67:19;19772:45;19750:67;;;19843:18;;;;:25;;19750:67;19843:22;:25::i;:::-;19821:18;;;:47;19872:17;;;:35;;;19937:12;:10;:12::i;:::-;-1:-1:-1;;;;;19917:48:19;19928:7;19917:48;19951:13;19917:48;;;;;;;;;;;;;;;18858:1111;;;;:::o;2922:438:21:-;3030:4;3045:22;3057:9;3045:11;:22::i;:::-;3041:316;;;3080:55;;-1:-1:-1;;;3080:55:21;;-1:-1:-1;;;;;3080:36:21;;;;;:55;;3117:5;;3124:10;;3080:55;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3080:55:21;;;;;;;;;;;-1:-1:-1;3080:55:21;;;101:4:-1;3080:55:21;80:15:-1;;;-1:-1;;76:31;65:43;;113:20;;;3080:55:21;;;;;;;;;;3076:192;;;;14:27:-1;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;3228:40:21;3076:192;;;-1:-1:-1;;;;;;3175:46:21;-1:-1:-1;;;3175:46:21;;-1:-1:-1;3168:53:21;;3076:192;-1:-1:-1;3280:5:21;3273:12;;3041:316;3343:9;-1:-1:-1;;;;;3312:40:21;:27;3321:5;3328:10;3312:8;:27::i;:::-;-1:-1:-1;;;;;3312:40:21;;;2922:438;-1:-1:-1;;;;2922:438:21:o;2477:273::-;2582:10;2619;-1:-1:-1;;;;;2606:23:21;:9;-1:-1:-1;;;;;2606:23:21;;:93;;;;2641:9;-1:-1:-1;;;;;2633:32:21;;2666:22;2677:10;2666;:22::i;:::-;2690:8;2633:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2633:66:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2633:66:21;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2633:66:21;;;;;;;;;2599:100;2477:273;-1:-1:-1;;;;2477:273:21:o;538:177::-;631:12;686:11;699;657:54;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;657:54:21;;;650:61;;538:177;;;;:::o;4282:257::-;4413:4;4431:51;4450:9;4471;4461:20;;;;;;4431:18;:51::i;:::-;:104;;;;4486:49;4502:9;4513;4524:10;4486:15;:49::i;470:124:61:-;528:7;555:1;550;:6;;542:15;;12:1:-1;9;2:12;542:15:61;-1:-1:-1;573:5:61;;;470:124::o;1869:96::-;1927:7;1952:1;1948;:5;:13;;1960:1;1948:13;;;-1:-1:-1;1956:1:61;;1869:96;-1:-1:-1;1869:96:61:o;1715:97::-;1773:7;1799:1;1794;:6;;:14;;1807:1;1794:14;;2218:114;2283:7;2304:24;2318:1;2321;2324:3;2304:13;:24::i;227:124::-;285:7;311:5;;;328:6;;;;320:15;;12:1:-1;9;2:12;669:362:61;727:7;944:6;940:32;;-1:-1:-1;966:1:61;959:8;;940:32;987:5;;;991:1;987;:5;:1;1004:5;;;;;:10;996:19;;12:1:-1;9;2:12;1591:219:19;1671:38;1681:4;1695;1702:6;1671:9;:38::i;:::-;-1:-1:-1;;;;;1731:15:19;;;;;;:9;:15;;;;;;:27;;1751:6;1731:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;1713:15:19;;;;;;:9;:15;;;;;;;:45;;;;1767:18;;;;;1723:4;;1778:6;;1767:18;;;;;;;;;;1591:219;;:::o;735:104:65:-;822:10;735:104;:::o;372:163:21:-;443:12;522:8;469:62;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;469:62:21;;;462:69;;372:163;;;:::o;3363:684::-;3480:4;3495:22;3507:9;3495:11;:22::i;:::-;3491:553;;;3530:59;;-1:-1:-1;;;3530:59:21;;-1:-1:-1;;;;;3530:36:21;;;;;:59;;3567:9;;3578:10;;3530:59;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;3530:59:21;;;;;;;;;;;-1:-1:-1;3530:59:21;;;101:4:-1;3530:59:21;80:15:-1;;;-1:-1;;76:31;65:43;;113:20;;;3530:59:21;;;;;;;;;;3526:199;;;;14:27:-1;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;3685:40:21;3526:199;;;-1:-1:-1;;;;;;3629:46:21;-1:-1:-1;;;3629:46:21;;-1:-1:-1;3622:53:21;;3526:199;3771:20;;;;;;3734:70;;-1:-1:-1;;;3734:70:21;;-1:-1:-1;;;;;3734:36:21;;;;;:70;;3771:20;3793:10;;3734:70;;;;3491:553;4030:9;-1:-1:-1;;;;;3984:55:21;:42;4003:9;3993:20;;;;;;4015:10;3984:8;:42::i;2274:122:19:-;2349:43;2354:7;2363;:16;2371:7;2363:16;;;;;;;;;;;:28;;;2349:4;:43::i;:::-;2274:122;;:::o;1147:268:61:-;1205:7;1293:1;1289;:5;1281:14;;12:1:-1;9;2:12;1281:14:61;1300:9;1316:1;1312;:5;;;;;;;1147:268;-1:-1:-1;;;;1147:268:61:o;2487:1539::-;2907:4;2901:11;;2936:66;2916:87;;3027:66;3020:4;3014:11;;3007:87;3118:66;3105:11;;;3098:87;3209:66;3202:4;3196:11;;3189:87;3300:66;3293:4;3287:11;;3280:87;3391:66;3384:4;3378:11;;3371:87;3482:66;3475:4;3469:11;;3462:87;3573:66;3566:4;3560:11;;3553:87;2695:5;3657:13;;;3644:27;;;-1:-1:-1;;;2587:1:61;-1:-1:-1;;;2790:19:61;2755:11;2724:7;2667:4;2639;2611;-1:-1:-1;;2581:8:61;;2604:12;;;2598:19;2632:12;;;2626:19;2660:12;;;2654:19;2688:13;;;2682:20;2717:15;;;2711:22;2748:19;;;2742:26;2783:27;;;2777:34;2826:43;;;2820:50;2879:9;3688:64;3851:13;3847:25;;;3901:3;3897:10;3891:17;;;3885:24;3881:36;-1:-1:-1;;;3942:75:61;;;3933:85;3926:93;;2555:1468::o;26002:1624:19:-;26083:38;26129:16;;;:7;:16;;;;;;;;26195:11;:20;;;;;26244:11;;;;;26236:20;;:7;:20;;;;;;;:26;;;26195:20;;26774:33;;26794:12;;26236:26;;26794:12;:9;:12;:::i;:::-;26774:15;;;;;:33;:19;:33;:::i;:::-;26733:15;:27;;;;;;;;;;;:38;;26765:5;26733:38;:31;:38;:::i;:::-;:74;26729:894;;;26864:21;;26894:379;26918:17;;;:24;26914:28;;26894:379;;;26958:9;26970:4;:17;;26988:1;26970:20;;;;;;;;;;;;;;;;;;;;27010:24;;;:15;:24;;;;;;-1:-1:-1;;;;;26970:20:19;;;27010:27;;;;;;;;;26970:20;27010:38;;26970:20;;-1:-1:-1;27010:52:19;;:154;;;;-1:-1:-1;27114:50:19;27076:24;;;;:15;:24;;;;;;;;-1:-1:-1;;;;;27076:27:19;;;;;;;;;:34;;;:88;;;;;;;;;27010:154;26996:272;;;27241:20;:13;27259:1;27241:20;:17;:20;:::i;:::-;27225:36;;26996:272;-1:-1:-1;26944:3:19;;26894:379;;;-1:-1:-1;27331:62:19;;-1:-1:-1;;27331:62:19;27353:40;27331:62;;;;;27398:19;;;:32;;;27457:12;;;;:48;;27501:3;;27457:39;;:16;:39::i;:48::-;27435:19;;;:70;27532:1;27510:18;;;:23;27538:18;;;:35;;;27584:34;;27598:7;;27584:34;;;;27607:10;;27584:34;;;;;;;;;;26729:894;;26002:1624;;;;;:::o;4210:632::-;4279:33;4315:16;;;:7;:16;;;;;4460:21;;;;4408:18;;;;4460:21;4361:14;;;4315:16;;4279:33;4361:121;;4460:21;4361:66;;:14;:66;:46;:66;:::i;:121::-;4506:21;;;;4336:146;;-1:-1:-1;4486:17:19;;4506:79;;1936:2:4;4506:79:19;:55;:79;:::i;:::-;4597:14;;;;4486:99;;-1:-1:-1;4590:49:19;;-1:-1:-1;;;;;4597:14:19;4620;4590:6;:49::i;:::-;4650:21;;;;4643:49;;-1:-1:-1;;;;;4650:21:19;4673:9;4684:7;4643:5;:49::i;:::-;4696;2151:42:4;4726:9:19;4737:7;4696:6;:49::i;:::-;4769;2151:42:4;4799:9:19;4769:4;:49::i;2399:126::-;2476:45;2483:7;2492;:16;2500:7;2492:16;;;;;;;;;;;:28;;;2476:6;:45::i;4050:229:21:-;4172:4;4190:36;4209:9;4220:5;4190:18;:36::i;:::-;:85;;;;4230:45;4246:9;4257:5;4264:10;4230:15;:45::i;2979:1228:19:-;3049:33;3085:16;;;:7;:16;;;;;3230:21;;;;3178:18;;;;3230:21;3131:14;;;3085:16;;3049:33;3131:121;;3230:21;3131:66;;:14;:66;:46;:66;:::i;:121::-;3276:21;;;;3106:146;;-1:-1:-1;3256:17:19;;3276:79;;1936:2:4;3276:79:19;:55;:79;:::i;:::-;3393:14;;;;3256:99;;-1:-1:-1;3387:46:19;;-1:-1:-1;;;;;3393:14:19;3409;3425:7;3387:5;:46::i;:::-;3458:14;;;;:18;3454:83;;3492:14;;;;3508;;;;3485:47;;-1:-1:-1;;;;;3492:14:19;;3524:7;3485:6;:47::i;:::-;3561:18;;;;:22;;;;:60;;-1:-1:-1;3587:12:19;;;:20;-1:-1:-1;;;;;3587:20:19;:34;;3561:60;3557:133;;;3637:18;;;;3657;;;;3630:55;;-1:-1:-1;;;;;3637:18:19;;3677:7;3630:6;:55::i;:::-;3723:21;;;;3716:40;;-1:-1:-1;;;;;3723:21:19;3746:9;3716:6;:40::i;:::-;2151:42:4;3853:13:19;3869:24;:9;:24;;;;3901:9;;3897:307;;3927:129;4050:5;3927:80;2058:10:4;3927:41:19;4050:5;1997:2:4;3927:41:19;:28;:41;:::i;:80::-;:122;:129;:122;:129;:::i;:::-;3919:137;;4104:45;2151:42:4;4134:5:19;4141:7;4104:5;:45::i;:::-;4161:21;;;;4154:45;;-1:-1:-1;;;;;4161:21:19;4184:5;4191:7;4154:6;:45::i;27662:2922::-;27721:33;27757:16;;;:7;:16;;;;;27777:33;;:::i;:::-;27821:11;;;;;27813:20;;;;:7;:20;;;;;;;;;27777:56;;;;;;;;;-1:-1:-1;;;;;27777:56:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27777:56:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;27813:20;;27777:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;27777:56:19;;;-1:-1:-1;;27777:56:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27893:15;;;;:21;;27777:56;;-1:-1:-1;;;;27919:535:19;27943:17;;;:24;27939:28;;27919:535;;;27981:43;28033:4;:17;;28051:1;28033:20;;;;;;;;;;;;;;;;;;;;28110:24;;;:15;:24;;;;;;-1:-1:-1;;;;;28033:20:19;;;28110:32;;;;;;;;;28033:20;;-1:-1:-1;28175:45:19;28152:19;;;;:68;;;;;;;;;28148:302;;;28267:19;;;;28248:39;;:14;;:39;:18;:39;:::i;:::-;28231:56;;28148:302;;;28427:16;;;;28411:33;;:11;;:33;:15;:33;:::i;:::-;28397:47;;28148:302;-1:-1:-1;;27969:3:19;;27919:535;;;;28504:21;28528:67;28551:43;28568:4;:25;;;28559:3;28551:16;;:43;;;;:::i;:::-;28528:11;;:67;:22;:67;:::i;:::-;28504:91;-1:-1:-1;28605:9:19;28600:1873;28624:17;;;:24;28620:28;;28600:1873;;;28662:43;28714:4;:17;;28732:1;28714:20;;;;;;;;;;;;;;;;;;;;28791:24;;;:15;:24;;;;;;-1:-1:-1;;;;;28714:20:19;;;28791:32;;;;;;;;;28714:20;;-1:-1:-1;28856:45:19;28833:19;;;;:68;;;;;;;;;28829:1640;;;28963:19;;;;28912:20;;28935:64;;:13;;28984:14;28935:64;:27;:64;:::i;:::-;28912:87;-1:-1:-1;29028:29:19;:11;28912:87;29028:29;:15;:29;:::i;:::-;29005:52;;29064:39;29083:4;:11;;;29096:6;29064:18;:39::i;:::-;29109:52;29131:6;29139:12;29153:7;29109:21;:52::i;:::-;29215:17;;;:24;29242:1;-1:-1:-1;29211:526:19;;;-1:-1:-1;;;;;29652:22:19;;;;;;:14;:22;;;;;;:29;;29679:1;29652:29;:26;:29;:::i;:::-;-1:-1:-1;;;;;29627:22:19;;;;;;:14;:22;;;;;;:54;;;;29693:37;;29722:7;;29693:37;;;29211:526;28829:1640;;;;29860:47;29878:4;:11;;;29891:6;29899:7;29860:17;:47::i;:::-;-1:-1:-1;;;;;30369:22:19;;;;;;:14;:22;;;;;;:41;;30406:1;30408;30369:41;:36;:41;:::i;:::-;-1:-1:-1;;;;;30344:22:19;;;;;;:14;:22;;;;;;:66;;;;30422:35;;30449:7;;30422:35;;;28829:1640;-1:-1:-1;;28650:3:19;;28600:1873;;;;30526:54;30546:4;:11;;;30559;30572:7;30526:19;:54::i;30643:670::-;30723:14;30748:16;;;:7;:16;;;;;;;;:23;;;30740:32;;:7;:32;;;;;:41;;;-1:-1:-1;;;;;30740:41:19;30789:20;;30785:525;;31035:13;;30992:76;;-1:-1:-1;;;30992:76:19;;-1:-1:-1;;;;;30992:37:19;;;;;:76;;31050:7;;31059:8;;30992:76;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30992:76:19;;;;;;;;;;;;;;;30988:318;;;;14:27:-1;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;31268:2:19;31252:13;;:18;;;;;;31240:9;:30;31233:38;;;;31118:188;30988:318;30643:670;;;:::o;2753:166:21:-;2839:4;-1:-1:-1;;;;;2857:23:21;;;;;;:58;;-1:-1:-1;;2897:18:21;;;;:11;:18;;;;;;-1:-1:-1;;;;;2897:18:21;;;2884:31;;;;2753:166::o;2528:134:19:-;2625:33;2632:7;2641;2650;2625:6;:33::i;2818:158::-;2920:16;;;;:7;:16;;;;;:33;;;2913:59;;-1:-1:-1;;;;;2920:33:19;2955:7;2964;2913:6;:59::i;1715:562:21:-;1777:4;2197:20;;2054:66;2230:23;;;;;;:42;;-1:-1:-1;;2257:15:21;;;2222:51;-1:-1:-1;;1715:562:21:o;825:820::-;902:7;916:9;929;942;960:5;:12;976:2;960:18;956:572;;;-1:-1:-1;;;1060:4:21;1049:16;;1043:23;1101:4;1090:16;;1084:23;1142:4;1131:16;;1125:23;1122:1;1117:32;1024:130;;;1170:5;:12;1186:2;1170:18;1166:362;;;-1:-1:-1;;;1292:4:21;1281:16;;1275:23;1340:4;1329:16;;1323:23;-1:-1:-1;;;;;1308:107:21;;;1437:1;1432:32;1429:1;1425:40;1249:221;;;1489:34;;-1:-1:-1;;;1489:34:21;;;;;;;;1166:362;1540:2;1536:1;:6;;;1532:19;;;1549:2;1544:7;1532:19;1563:1;:7;;1568:2;1563:7;:18;;;;1574:1;:7;;1579:2;1574:7;1563:18;1555:50;;;;-1:-1:-1;;;1555:50:21;;;;;;;;;1616:25;1626:5;1633:1;1636;1639;1616:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;1616:25:21;;-1:-1:-1;;1616:25:21;;;825:820;-1:-1:-1;;;;;;;825:820:21:o;2331:107::-;-1:-1:-1;;;;;2419:14:21;;2331:107::o;2022:121:61:-;2101:7;2122:17;2126:9;2130:1;2133;2126:3;:9::i;:::-;2137:1;2122:3;:17::i;329:395:12:-;-1:-1:-1;;;;;422:20:12;;414:70;;;;-1:-1:-1;;;414:70:12;;;;;;;;;-1:-1:-1;;;;;496:23:12;;488:71;;;;-1:-1:-1;;;488:71:12;;;;;;;;;-1:-1:-1;;;;;585:18:12;;;;;;:10;:18;;;;;;:30;;608:6;585:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;564:18:12;;;;;;;:10;:18;;;;;;:51;;;;643:21;;;;;;;:33;;669:6;643:33;:25;:33;:::i;:::-;-1:-1:-1;;;;;619:21:12;;;;;;;:10;:21;;;;;;;:57;;;;685:35;;;;;;;;;;713:6;;685:35;;;;;;;;;;329:395;;;:::o;1813:223:19:-;1895:38;1913:4;1920;1926:6;1895:9;:38::i;:::-;-1:-1:-1;;;;;1955:15:19;;;;;;:9;:15;;;;;;:27;;1975:6;1955:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;1937:15:19;;;;;;:9;:15;;;;;;;:45;;;;1991:20;;;;;1947:4;;2004:6;;1991:20;;1391:197;-1:-1:-1;;;;;1503:15:19;;;;;;:9;:15;;;;;;:27;;1523:6;1503:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;1485:15:19;;;;;;:9;:15;;;;;;;:45;;;;1539:24;;;;;1495:4;;1551:6;;1559:3;;1539:24;;;;;;;;;;1391:197;;;:::o;1196:192::-;1291:38;1309:4;1316;1322:6;1291:9;:38::i;:::-;1338:25;1345:4;1351:6;1359:3;1338:25;;;;;;;;;2665:150;2758:53;2764:7;2773;:16;2781:7;2773:16;;;;;;;;;;;:28;;;2803:7;2758:5;:53::i;585:31702::-;;;;;;;;;;;;;-1:-1:-1;585:31702:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;585:31702:19;;;-1:-1:-1;585:31702:19;:::i;:::-;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;585:31702:19;;;;;;-1:-1:-1;;;;;585:31702:19;;;;;;-1:-1:-1;;;;;585:31702:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;585:31702:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;585:31702:19;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;301:352;;;431:3;424:4;416:6;412:17;408:27;398:2;;-1:-1;;439:12;398:2;-1:-1;469:20;;-1:-1;;;;;498:30;;495:2;;;-1:-1;;531:12;495:2;575:4;567:6;563:17;551:29;;626:3;575:4;;610:6;606:17;567:6;592:32;;589:41;586:2;;;643:1;;633:12;586:2;391:262;;;;;;1605:336;;;1719:3;1712:4;1704:6;1700:17;1696:27;1686:2;;-1:-1;;1727:12;1686:2;-1:-1;1757:20;;-1:-1;;;;;1786:30;;1783:2;;;-1:-1;;1819:12;1783:2;1863:4;1855:6;1851:17;1839:29;;1914:3;1863:4;1894:17;1855:6;1880:32;;1877:41;1874:2;;;1931:1;;1921:12;1950:440;;2051:3;2044:4;2036:6;2032:17;2028:27;2018:2;;-1:-1;;2059:12;2018:2;2106:6;2093:20;-1:-1;;;;;68919:6;68916:30;68913:2;;;-1:-1;;68949:12;68913:2;2128:64;69022:9;69003:17;;-1:-1;;68999:33;69090:4;69080:15;2128:64;;;2119:73;;2212:6;2205:5;2198:21;2316:3;69090:4;2307:6;2240;2298:16;;2295:25;2292:2;;;2333:1;;2323:12;2292:2;71590:6;69090:4;2240:6;2236:17;69090:4;2274:5;2270:16;71567:30;71646:1;71628:16;;;69090:4;71628:16;71621:27;2274:5;2011:379;-1:-1;;2011:379;2889:1623;;3003:6;;2991:9;2986:3;2982:19;2978:32;2975:2;;;-1:-1;;3013:12;2975:2;3041:22;3003:6;3041:22;;;3032:31;;;3144:49;3189:3;3165:22;3144:49;;;3126:16;3119:75;3259:2;3317:9;3313:22;11083:20;3259:2;3278:5;3274:16;3267:75;3405:2;3463:9;3459:22;11083:20;3405:2;3424:5;3420:16;3413:75;3548:2;3606:9;3602:22;1241:20;3548:2;3567:5;3563:16;3556:75;3737:49;3782:3;3703;3762:9;3758:22;3737:49;;;3703:3;3723:5;3719:16;3712:75;3896:49;3941:3;3862;3921:9;3917:22;3896:49;;;3862:3;3882:5;3878:16;3871:75;4054:49;4099:3;4020;4079:9;4075:22;4054:49;;;4020:3;4040:5;4036:16;4029:75;4165:3;4224:9;4220:22;1241:20;4165:3;4185:5;4181:16;4174:75;4338:3;;4327:9;4323:19;4310:33;-1:-1;;;;;4355:6;4352:30;4349:2;;;3112:1;;4385:12;4349:2;4432:58;4486:3;4477:6;4466:9;4462:22;4432:58;;;4338:3;4416:5;4412:18;4405:86;;;2969:1543;;;;;6245:2774;;6363:6;;6351:9;6346:3;6342:19;6338:32;6335:2;;;-1:-1;;6373:12;6335:2;6401:22;6363:6;6401:22;;;6392:31;;;6504:49;6549:3;6525:22;6504:49;;;6486:16;6479:75;6622:2;6680:9;6676:22;11083:20;6622:2;6641:5;6637:16;6630:75;6802:49;6847:3;6769:2;6827:9;6823:22;6802:49;;;6769:2;6788:5;6784:16;6777:75;6924:2;6982:9;6978:22;11083:20;6924:2;6943:5;6939:16;6932:75;7108:49;7153:3;7074;7133:9;7129:22;7108:49;;;7074:3;7094:5;7090:16;7083:75;7233:3;7292:9;7288:22;11083:20;7233:3;7253:5;7249:16;7242:75;7417:49;7462:3;7383;7442:9;7438:22;7417:49;;;7383:3;7399:16;;7392:75;7530:3;7585:22;;;11083:20;7546:16;;;7539:75;7674:3;7731:22;;;1241:20;7690:18;;;7683:77;7825:3;7882:22;;;11083:20;7841:18;;;7834:77;7973:3;8030:22;;;11083:20;7989:18;;;7982:77;8127:3;8163:49;8208:3;8184:22;;;8163:49;;;8143:18;;;8136:77;8278:3;8314:49;8359:3;8335:22;;;8314:49;;;8294:18;;;8287:77;8455:3;8440:19;;;8427:33;-1:-1;;;;;8469:30;;;8466:2;;;6472:1;;8502:12;8466:2;8549:59;8604:3;8595:6;8584:9;8580:22;8549:59;;;8455:3;8533:5;8529:18;8522:87;8670:3;;;;8731:9;8727:22;1241:20;8670:3;8690:5;8686:18;8679:77;8845:3;;;;8834:9;8830:19;8817:33;8803:47;;8480:18;8862:6;8859:30;8856:2;;;6472:1;;8892:12;8856:2;;8939:58;8993:3;8984:6;8973:9;8969:22;8939:58;;11294:241;;11398:2;11386:9;11377:7;11373:23;11369:32;11366:2;;;-1:-1;;11404:12;11366:2;85:6;72:20;97:33;124:5;97:33;;11542:263;;11657:2;11645:9;11636:7;11632:23;11628:32;11625:2;;;-1:-1;;11663:12;11625:2;226:6;220:13;238:33;265:5;238:33;;11812:366;;;11933:2;11921:9;11912:7;11908:23;11904:32;11901:2;;;-1:-1;;11939:12;11901:2;85:6;72:20;97:33;124:5;97:33;;;11991:63;12091:2;12130:22;;;;1241:20;;-1:-1;;;11895:283;12185:615;;;;;12342:2;12330:9;12321:7;12317:23;12313:32;12310:2;;;-1:-1;;12348:12;12310:2;85:6;72:20;97:33;124:5;97:33;;;12400:63;-1:-1;12500:2;12539:22;;1241:20;;-1:-1;12636:2;12621:18;;12608:32;-1:-1;;;;;12649:30;;12646:2;;;-1:-1;;12682:12;12646:2;12720:64;12776:7;12767:6;12756:9;12752:22;12720:64;;;12304:496;;;;-1:-1;12710:74;-1:-1;;;;12304:496;12807:397;;;12946:2;12934:9;12925:7;12921:23;12917:32;12914:2;;;-1:-1;;12952:12;12914:2;13010:17;12997:31;-1:-1;;;;;13040:6;13037:30;13034:2;;;-1:-1;;13070:12;13034:2;13108:80;13180:7;13171:6;13160:9;13156:22;13108:80;;;13098:90;;;;-1:-1;12908:296;-1:-1;;;;12908:296;13211:678;;;;;13402:2;13390:9;13381:7;13377:23;13373:32;13370:2;;;-1:-1;;13408:12;13370:2;13466:17;13453:31;-1:-1;;;;;13504:18;13496:6;13493:30;13490:2;;;-1:-1;;13526:12;13490:2;13564:80;13636:7;13627:6;13616:9;13612:22;13564:80;;;13554:90;;-1:-1;13554:90;-1:-1;13709:2;13694:18;;13681:32;;-1:-1;13722:30;;;13719:2;;;-1:-1;;13755:12;13719:2;;13793:80;13865:7;13856:6;13845:9;13841:22;13793:80;;13896:257;;14008:2;13996:9;13987:7;13983:23;13979:32;13976:2;;;-1:-1;;14014:12;13976:2;1120:6;1114:13;72821:5;70957:13;70950:21;72799:5;72796:32;72786:2;;-1:-1;;72832:12;14160:241;;14264:2;14252:9;14243:7;14239:23;14235:32;14232:2;;;-1:-1;;14270:12;14232:2;-1:-1;1241:20;;14226:175;-1:-1;14226:175;14408:263;;14523:2;14511:9;14502:7;14498:23;14494:32;14491:2;;;-1:-1;;14529:12;14491:2;-1:-1;1389:13;;14485:186;-1:-1;14485:186;14678:366;;;14799:2;14787:9;14778:7;14774:23;14770:32;14767:2;;;-1:-1;;14805:12;14767:2;-1:-1;;1241:20;;;14957:2;14996:22;;;1241:20;;-1:-1;14761:283;15051:1077;;;;;;;15258:3;15246:9;15237:7;15233:23;15229:33;15226:2;;;-1:-1;;15265:12;15226:2;1254:6;1241:20;15317:63;;15417:2;15460:9;15456:22;1241:20;15425:63;;15525:2;15568:9;15564:22;1241:20;15533:63;;15633:2;15676:9;15672:22;72:20;97:33;124:5;97:33;;;15641:63;-1:-1;15769:3;15754:19;;15741:33;-1:-1;;;;;15783:30;;;15780:2;;;-1:-1;;15816:12;15780:2;15846:62;15900:7;15891:6;15880:9;15876:22;15846:62;;;15836:72;;15973:3;15962:9;15958:19;15945:33;15931:47;;15794:18;15990:6;15987:30;15984:2;;;-1:-1;;16020:12;15984:2;;16050:62;16104:7;16095:6;16084:9;16080:22;16050:62;;;16040:72;;;15220:908;;;;;;;;;16135:1181;;;;;;;16351:3;16339:9;16330:7;16326:23;16322:33;16319:2;;;-1:-1;;16358:12;16319:2;1254:6;1241:20;16410:63;;16510:2;16553:9;16549:22;1241:20;16518:63;;16646:2;16635:9;16631:18;16618:32;-1:-1;;;;;16670:18;16662:6;16659:30;16656:2;;;-1:-1;;16692:12;16656:2;16722:62;16776:7;16767:6;16756:9;16752:22;16722:62;;;16712:72;;16821:2;16864:9;16860:22;72:20;63:29;;97:33;124:5;97:33;;;16829:63;;-1:-1;16957:3;16942:19;;16929:33;;16971:30;;;16968:2;;;-1:-1;;17004:12;17323:490;;;;17463:2;17451:9;17442:7;17438:23;17434:32;17431:2;;;-1:-1;;17469:12;17431:2;1254:6;1241:20;17521:63;;17649:2;17638:9;17634:18;17621:32;-1:-1;;;;;17665:6;17662:30;17659:2;;;-1:-1;;17695:12;17659:2;17733:64;17789:7;17780:6;17769:9;17765:22;17733:64;;;17425:388;;17723:74;;-1:-1;17723:74;;-1:-1;;;;17425:388;18193:261;;18307:2;18295:9;18286:7;18282:23;18278:32;18275:2;;;-1:-1;;18313:12;18275:2;1529:13;;-1:-1;;;;;;71123:78;;73040:34;;73030:2;;-1:-1;;73078:12;18461:1191;;;;;18731:3;18719:9;18710:7;18706:23;18702:33;18699:2;;;-1:-1;;18738:12;18699:2;18796:17;18783:31;-1:-1;;;;;18834:18;18826:6;18823:30;18820:2;;;-1:-1;;18856:12;18820:2;18886:78;18956:7;18947:6;18936:9;18932:22;18886:78;;;18876:88;;19029:2;19018:9;19014:18;19001:32;18987:46;;18834:18;19045:6;19042:30;19039:2;;;-1:-1;;19075:12;19039:2;19105:82;19179:7;19170:6;19159:9;19155:22;19105:82;;;19095:92;;19252:2;19241:9;19237:18;19224:32;19210:46;;18834:18;19268:6;19265:30;19262:2;;;-1:-1;;19298:12;19262:2;9194:6;;19381:22;;9173:19;;;9169:32;-1:-1;9166:2;;;-1:-1;;9204:12;9166:2;9232:22;9194:6;9232:22;;;9342:49;9387:3;9363:22;9342:49;;;9324:16;9317:75;19029:2;9522:9;9518:22;11083:20;19029:2;9483:5;9479:16;9472:75;19252:2;9668:9;9664:22;11083:20;19252:2;9629:5;9625:16;9618:75;9753:2;9811:9;9807:22;1241:20;9753:2;9772:5;9768:16;9761:75;18731:3;9960:9;9956:22;11083:20;18731:3;9921:5;9917:16;9910:75;10047:3;10106:9;10102:22;11083:20;10047:3;10067:5;10063:16;10056:75;10233:49;10278:3;10199;10258:9;10254:22;10233:49;;;10199:3;10219:5;10215:16;10208:75;10389:49;10434:3;10355;10414:9;10410:22;10389:49;;;10355:3;10375:5;10371:16;10364:75;10513:3;;;10549:49;10594:3;10513;10574:9;10570:22;10549:49;;;10513:3;10533:5;10529:18;10522:77;10660:3;;;;10721:9;10717:22;1241:20;10660:3;10680:5;10676:18;10669:77;10835:3;;;;10824:9;10820:19;10807:33;18834:18;10852:6;10849:30;10846:2;;;-1:-1;;10882:12;10846:2;10929:58;10983:3;10974:6;10963:9;10959:22;10929:58;;;10835:3;10913:5;10909:18;10902:86;;19318:95;;;;;9753:2;19467:9;19463:18;19450:32;19436:46;;18834:18;19494:6;19491:30;19488:2;;;-1:-1;;19524:12;19488:2;;19554:82;19628:7;19619:6;19608:9;19604:22;19554:82;;;19544:92;;;18693:959;;;;;;;;20120:113;-1:-1;;;;;71275:54;20191:37;;20185:48;21694:343;;21836:5;69528:12;69813:6;69808:3;69801:19;-1:-1;71735:101;71749:6;71746:1;71743:13;71735:101;;;69850:4;71816:11;;;;;71810:18;71797:11;;;;;71790:39;71764:10;71735:101;;;71851:6;71848:1;71845:13;71842:2;;;-1:-1;69850:4;71907:6;69845:3;71898:16;;71891:27;71842:2;-1:-1;69022:9;72477:14;-1:-1;;72473:28;21993:39;;;;69850:4;21993:39;;21784:253;-1:-1;;21784:253;35107:1775;;35266:6;509:18;;71286:42;;;35339:16;35333:23;71275:54;20198:3;20191:37;35516:4;35509:5;35505:16;35499:23;35516:4;35588:3;35584:14;20699:37;35680:4;35673:5;35669:16;35663:23;35680:4;35752:3;35748:14;20699:37;35841:4;35834:5;35830:16;35824:23;35841:4;35913:3;35909:14;20699:37;36014:4;36007:5;36003:16;35997:23;36026:71;36014:4;36086:3;36082:14;36068:12;36026:71;;;;36190:4;36183:5;36179:16;36173:23;36202:71;36190:4;36262:3;36258:14;36244:12;36202:71;;;;36365:4;36358:5;36354:16;36348:23;36377:71;36365:4;36437:3;36433:14;36419:12;36377:71;;;;36527:4;36520:5;36516:16;36510:23;36527:4;36599:3;36595:14;20699:37;36689:6;;36682:5;36678:18;36672:25;35266:6;36689;36721:3;36717:16;36710:40;36765:79;35266:6;35261:3;35257:16;36825:12;36765:79;;;36866:11;35239:1643;-1:-1;;;;;;35239:1643;44645:554;-1:-1;;72588:2;72584:14;;;;;20034:74;;44949:2;44940:12;;20699:37;;;;72584:14;;;45051:12;;;20034:74;45162:12;;;44824:375;45206:554;72588:2;72584:14;;;;-1:-1;;72584:14;20034:74;;45510:2;45501:12;;20699:37;;;;45612:12;;;20699:37;45723:12;;;45385:375;45767:383;20699:37;;;46011:2;46002:12;;20699:37;46113:12;;;45902:248;46547:282;;71590:6;71585:3;71580;71567:30;71628:16;;71621:27;;;71628:16;46682:147;-1:-1;46682:147;46836:511;24750:66;24730:87;;24714:2;24836:12;;20699:37;;;;47310:12;;;47044:303;47354:650;-1:-1;;;26854:87;;26839:1;26960:11;;20699:37;;;;47856:12;;;20699:37;47967:12;;;47590:414;48011:213;-1:-1;;;;;71275:54;;;;20191:37;;48129:2;48114:18;;48100:124;48231:324;-1:-1;;;;;71275:54;;;;20191:37;;48541:2;48526:18;;20699:37;48377:2;48362:18;;48348:207;48562:435;-1:-1;;;;;71275:54;;;;20191:37;;48900:2;48885:18;;20699:37;;;;48983:2;48968:18;;20699:37;48736:2;48721:18;;48707:290;49004:201;70957:13;;70950:21;20582:34;;49116:2;49101:18;;49087:118;49212:213;20699:37;;;49330:2;49315:18;;49301:124;49432:771;20699:37;;;49855:2;49840:18;;20699:37;;;;49938:2;49923:18;;20699:37;;;;50021:2;50006:18;;20699:37;50104:3;50089:19;;20699:37;50188:3;50173:19;;20699:37;49690:3;49675:19;;49661:542;50210:408;;20729:5;20706:3;20699:37;50374:2;50492;50481:9;50477:18;50470:48;50532:76;50374:2;50363:9;50359:18;50594:6;50532:76;;50956:539;20699:37;;;71491:4;71480:16;;;;51315:2;51300:18;;44598:35;51398:2;51383:18;;20699:37;51481:2;51466:18;;20699:37;51154:3;51139:19;;51125:370;51502:317;;51648:2;51669:17;51662:47;69813:6;51648:2;51637:9;51633:18;69801:19;71590:6;71585:3;69841:14;51637:9;69841:14;71567:30;71628:16;;;69841:14;71628:16;;;71621:27;;;;69022:9;72477:14;;;-1:-1;;72473:28;21300:39;;;51619:200;-1:-1;51619:200;51826:297;;51962:2;51983:17;51976:47;52037:76;51962:2;51951:9;51947:18;52099:6;52037:76;;52130:492;;52312:2;52333:17;52326:47;52387:76;52312:2;52301:9;52297:18;52449:6;52387:76;;;52511:9;52505:4;52501:20;52496:2;52485:9;52481:18;52474:48;52536:76;52607:4;52598:6;52536:76;;52629:407;52820:2;52834:47;;;22965:2;52805:18;;;69801:19;23001:26;69841:14;;;22981:47;23047:12;;;52791:245;53043:407;53234:2;53248:47;;;23298:2;53219:18;;;69801:19;23334:26;69841:14;;;23314:47;23380:12;;;53205:245;53457:407;53648:2;53662:47;;;23631:2;53633:18;;;69801:19;23667:34;69841:14;;;23647:55;-1:-1;;;23722:12;;;23715:27;23761:12;;;53619:245;53871:407;54062:2;54076:47;;;24012:2;54047:18;;;69801:19;24048:26;69841:14;;;24028:47;24094:12;;;54033:245;54285:407;54476:2;54490:47;;;24345:2;54461:18;;;69801:19;24381:26;69841:14;;;24361:47;24427:12;;;54447:245;54699:407;54890:2;54904:47;;;25087:2;54875:18;;;69801:19;25123:34;69841:14;;;25103:55;-1:-1;;;25178:12;;;25171:30;25220:12;;;54861:245;55113:407;55304:2;55318:47;;;25471:2;55289:18;;;69801:19;25507:26;69841:14;;;25487:47;25553:12;;;55275:245;55527:407;55718:2;55732:47;;;25804:2;55703:18;;;69801:19;25840:26;69841:14;;;25820:47;25886:12;;;55689:245;55941:407;56132:2;56146:47;;;26137:2;56117:18;;;69801:19;26173:26;69841:14;;;26153:47;26219:12;;;56103:245;56355:407;56546:2;56560:47;;;26470:2;56531:18;;;69801:19;26506:26;69841:14;;;26486:47;26552:12;;;56517:245;56769:407;56960:2;56974:47;;;27210:2;56945:18;;;69801:19;27246:26;69841:14;;;27226:47;27292:12;;;56931:245;57183:407;57374:2;57388:47;;;27543:2;57359:18;;;69801:19;27579:26;69841:14;;;27559:47;27625:12;;;57345:245;57597:407;57788:2;57802:47;;;27876:2;57773:18;;;69801:19;27912:26;69841:14;;;27892:47;27958:12;;;57759:245;58011:407;58202:2;58216:47;;;28209:2;58187:18;;;69801:19;28245:26;69841:14;;;28225:47;28291:12;;;58173:245;58425:407;58616:2;58630:47;;;28542:2;58601:18;;;69801:19;28578:26;69841:14;;;28558:47;28624:12;;;58587:245;58839:407;59030:2;59044:47;;;28875:2;59015:18;;;69801:19;28911:26;69841:14;;;28891:47;28957:12;;;59001:245;59253:407;59444:2;59458:47;;;29208:2;59429:18;;;69801:19;29244:26;69841:14;;;29224:47;29290:12;;;59415:245;59667:407;59858:2;59872:47;;;29541:2;59843:18;;;69801:19;29577:26;69841:14;;;29557:47;29623:12;;;59829:245;60081:407;60272:2;60286:47;;;29874:2;60257:18;;;69801:19;29910:26;69841:14;;;29890:47;29956:12;;;60243:245;60495:407;60686:2;60700:47;;;30207:2;60671:18;;;69801:19;30243:26;69841:14;;;30223:47;30289:12;;;60657:245;60909:407;61100:2;61114:47;;;30540:2;61085:18;;;69801:19;30576:26;69841:14;;;30556:47;30622:12;;;61071:245;61323:407;61514:2;61528:47;;;30873:2;61499:18;;;69801:19;30909:26;69841:14;;;30889:47;30955:12;;;61485:245;61737:407;61928:2;61942:47;;;31206:2;61913:18;;;69801:19;31242:26;69841:14;;;31222:47;31288:12;;;61899:245;62151:407;62342:2;62356:47;;;31539:2;62327:18;;;69801:19;31575:26;69841:14;;;31555:47;31621:12;;;62313:245;62565:407;62756:2;62770:47;;;31872:2;62741:18;;;69801:19;-1:-1;;;69841:14;;;31888:42;31949:12;;;62727:245;62979:407;63170:2;63184:47;;;63155:18;;;69801:19;32236:34;69841:14;;;32216:55;32290:12;;;63141:245;63393:407;63584:2;63598:47;;;32541:2;63569:18;;;69801:19;32577:26;69841:14;;;32557:47;32623:12;;;63555:245;63807:407;63998:2;64012:47;;;32874:2;63983:18;;;69801:19;32910:26;69841:14;;;32890:47;32956:12;;;63969:245;64221:407;64412:2;64426:47;;;33207:2;64397:18;;;69801:19;33243:34;69841:14;;;33223:55;-1:-1;;;33298:12;;;33291:29;33339:12;;;64383:245;64635:407;64826:2;64840:47;;;33590:2;64811:18;;;69801:19;33626:26;69841:14;;;33606:47;33672:12;;;64797:245;65049:407;65240:2;65254:47;;;33923:2;65225:18;;;69801:19;33959:26;69841:14;;;33939:47;34005:12;;;65211:245;65463:407;65654:2;65668:47;;;34256:2;65639:18;;;69801:19;34292:26;69841:14;;;34272:47;34338:12;;;65625:245;65877:407;66068:2;66082:47;;;34589:2;66053:18;;;69801:19;34625:26;69841:14;;;34605:47;34671:12;;;66039:245;66291:407;66482:2;66496:47;;;34922:2;66467:18;;;69801:19;34958:26;69841:14;;;34938:47;35004:12;;;66453:245;66705:377;;66881:2;66902:17;66895:47;66956:116;66881:2;66870:9;66866:18;67058:6;66956:116;;67489:393;;67673:2;67694:17;67687:47;39116:71;67673:2;67662:9;67658:18;39093:16;39087:23;39116:71;;;67673:2;39266:5;39262:16;39256:23;39341:14;67662:9;39341:14;20699:37;39341:14;39431:5;39427:16;39421:23;39450:71;39506:14;67662:9;39506:14;39492:12;39450:71;;;;39506:14;39604:5;39600:16;39594:23;39679:14;67662:9;39679:14;20699:37;39679:14;39772:5;39768:16;39762:23;39791:71;39847:14;67662:9;39847:14;39833:12;39791:71;;;;39847:14;39948:5;39944:16;39938:23;40023:14;67662:9;40023:14;20699:37;40023:14;40115:5;40111:16;40105:23;40134:71;40190:14;67662:9;40190:14;40176:12;40134:71;;;-1:-1;40190:14;40275:16;;40269:23;40354:14;;;;20699:37;;;;40436:18;;40430:25;40517:16;;;;20699:37;;;;40606:18;;40600:25;40687:16;;;;20699:37;;;;40773:18;;40767:25;40854:16;;;;20699:37;;;;40946:18;;40940:25;41027:16;40971:73;41027:16;;;40940:25;40971:73;;;41116:18;;41110:25;;-1:-1;41197:16;41141:73;41197:16;;;41110:25;41141:73;;;41197:16;41288:5;41284:18;41278:25;41258:45;;;39020:6;41323:16;39020:6;41323:16;67662:9;41323:16;41316:40;41371:81;39011:16;67662:9;39011:16;41433:12;41371:81;;;41526:18;;;41520:25;41607:16;;;;20699:37;;;;41692:18;;;41686:25;41749:14;;;-1:-1;;41749:14;41731:16;;;41724:40;41686:25;-1:-1;41607:16;41779:79;41753:4;41686:25;41779:79;;;67740:132;67644:238;-1:-1;;;;;;;67644:238;67889:405;;68079:2;68100:17;68093:47;42270:71;68079:2;68068:9;68064:18;42247:16;42241:23;42270:71;;;68079:2;42424:5;42420:16;42414:23;42499:14;68068:9;42499:14;20699:37;42499:14;42588:5;42584:16;42578:23;42663:14;68068:9;42663:14;20699:37;42663:14;42749:5;42745:16;42739:23;42824:14;68068:9;42824:14;20699:37;42824:14;42915:5;42911:16;42905:23;42990:14;68068:9;42990:14;20699:37;42990:14;43078:5;43074:16;43068:23;43153:14;68068:9;43153:14;20699:37;43153:14;43247:5;43243:16;43237:23;43266:71;43322:14;68068:9;43322:14;43308:12;43266:71;;;;43322:14;43420:5;43416:16;43410:23;43495:14;43439:71;43495:14;68068:9;43495:14;43481:12;43439:71;;;43591:18;;43585:25;;-1:-1;43672:16;43616:73;43672:16;;;43585:25;43616:73;;;43757:18;;43751:25;43838:16;;;;20699:37;;;;43923:18;;43917:25;42167:6;43962:16;;;43955:40;43917:25;-1:-1;44010:79;42158:16;;;43917:25;44010:79;;68521:256;68583:2;68577:9;68609:17;;;-1:-1;;;;;68669:34;;68705:22;;;68666:62;68663:2;;;68741:1;;68731:12;68663:2;68583;68750:22;68561:216;;-1:-1;68561:216;72616:117;-1:-1;;;;;71275:54;;72675:35;;72665:2;;72724:1;;72714:12;72665:2;72659:74;",
  "source": "pragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\nimport \"@iexec/solidity/contracts/ERC1154/IERC1154.sol\";\nimport \"./IexecERC20Common.sol\";\nimport \"./SignatureVerifier.sol\";\nimport \"../DelegateBase.sol\";\nimport \"../interfaces/IexecPoco.sol\";\n\n\nstruct Matching\n{\n\tbytes   apporderStruct;\n\tbytes32 apporderHash;\n\taddress appOwner;\n\tbytes   datasetorderStruct;\n\tbytes32 datasetorderHash;\n\taddress datasetOwner;\n\tbytes   workerpoolorderStruct;\n\tbytes32 workerpoolorderHash;\n\taddress workerpoolOwner;\n\tbytes   requestorderStruct;\n\tbytes32 requestorderHash;\n\tbool    hasDataset;\n}\n\ncontract IexecPocoDelegate is IexecPoco, DelegateBase, IexecERC20Common, SignatureVerifier\n{\n\tusing SafeMathExtended  for uint256;\n\tusing IexecLibOrders_v5 for IexecLibOrders_v5.AppOrder;\n\tusing IexecLibOrders_v5 for IexecLibOrders_v5.DatasetOrder;\n\tusing IexecLibOrders_v5 for IexecLibOrders_v5.WorkerpoolOrder;\n\tusing IexecLibOrders_v5 for IexecLibOrders_v5.RequestOrder;\n\n\t/***************************************************************************\n\t *                        Escrow methods: internal                         *\n\t ***************************************************************************/\n\tfunction reward(address user, uint256 amount, bytes32 ref)\n\tinternal /* returns (bool) */\n\t{\n\t\t_transfer(address(this), user, amount);\n\t\temit Reward(user, amount, ref);\n\t\t/* return true; */\n\t}\n\n\tfunction seize(address user, uint256 amount, bytes32 ref)\n\tinternal /* returns (bool) */\n\t{\n\t\tm_frozens[user] = m_frozens[user].sub(amount);\n\t\temit Seize(user, amount, ref);\n\t\t/* return true; */\n\t}\n\n\tfunction lock(address user, uint256 amount)\n\tinternal /* returns (bool) */\n\t{\n\t\t_transfer(user, address(this), amount);\n\t\tm_frozens[user] = m_frozens[user].add(amount);\n\t\temit Lock(user, amount);\n\t\t/* return true; */\n\t}\n\n\tfunction unlock(address user, uint256 amount)\n\tinternal /* returns (bool) */\n\t{\n\t\t_transfer(address(this), user, amount);\n\t\tm_frozens[user] = m_frozens[user].sub(amount);\n\t\temit Unlock(user, amount);\n\t\t/* return true; */\n\t}\n\n\t/***************************************************************************\n\t *                    Escrow overhead for contribution                     *\n\t ***************************************************************************/\n\tfunction lockContribution(bytes32 _dealid, address _worker)\n\tinternal\n\t{\n\t\tlock(_worker, m_deals[_dealid].workerStake);\n\t}\n\n\tfunction unlockContribution(bytes32 _dealid, address _worker)\n\tinternal\n\t{\n\t\tunlock(_worker, m_deals[_dealid].workerStake);\n\t}\n\n\tfunction rewardForContribution(address _worker, uint256 _amount, bytes32 _taskid)\n\tinternal\n\t{\n\t\treward(_worker, _amount, _taskid);\n\t}\n\n\tfunction seizeContribution(bytes32 _dealid, address _worker, bytes32 _taskid)\n\tinternal\n\t{\n\t\tseize(_worker, m_deals[_dealid].workerStake, _taskid);\n\t}\n\n\tfunction rewardForScheduling(bytes32 _dealid, uint256 _amount, bytes32 _taskid)\n\tinternal\n\t{\n\t\treward(m_deals[_dealid].workerpool.owner, _amount, _taskid);\n\t}\n\n\tfunction successWork(bytes32 _dealid, bytes32 _taskid)\n\tinternal\n\t{\n\t\tIexecLibCore_v5.Deal storage deal = m_deals[_dealid];\n\n\t\tuint256 requesterstake = deal.app.price\n\t\t                         .add(deal.dataset.price)\n\t\t                         .add(deal.workerpool.price);\n\t\tuint256 poolstake = deal.workerpool.price\n\t\t                    .percentage(WORKERPOOL_STAKE_RATIO);\n\n\t\t// seize requester funds\n\t\tseize(deal.requester, requesterstake, _taskid);\n\t\t// dapp reward\n\t\tif (deal.app.price > 0)\n\t\t{\n\t\t\treward(deal.app.owner, deal.app.price, _taskid);\n\t\t}\n\t\t// data reward\n\t\tif (deal.dataset.price > 0 && deal.dataset.pointer != address(0))\n\t\t{\n\t\t\treward(deal.dataset.owner, deal.dataset.price, _taskid);\n\t\t}\n\t\t// unlock pool stake\n\t\tunlock(deal.workerpool.owner, poolstake);\n\t\t// pool reward performed by consensus manager\n\n\t\t/**\n\t\t * Retrieve part of the kitty\n\t\t */\n\t\tuint256 kitty = m_frozens[KITTY_ADDRESS];\n\t\tif (kitty > 0)\n\t\t{\n\t\t\tkitty = kitty\n\t\t\t        .percentage(KITTY_RATIO) // fraction\n\t\t\t        .max(KITTY_MIN)          // at least this\n\t\t\t        .min(kitty);             // but not more than available\n\t\t\tseize (KITTY_ADDRESS,         kitty, _taskid);\n\t\t\treward(deal.workerpool.owner, kitty, _taskid);\n\t\t}\n\t}\n\n\tfunction failedWork(bytes32 _dealid, bytes32 _taskid)\n\tinternal\n\t{\n\t\tIexecLibCore_v5.Deal storage deal = m_deals[_dealid];\n\n\t\tuint256 requesterstake = deal.app.price\n\t\t                         .add(deal.dataset.price)\n\t\t                         .add(deal.workerpool.price);\n\t\tuint256 poolstake = deal.workerpool.price\n\t\t                    .percentage(WORKERPOOL_STAKE_RATIO);\n\n\t\tunlock(deal.requester,        requesterstake    );\n\t\tseize (deal.workerpool.owner, poolstake, _taskid);\n\t\treward(KITTY_ADDRESS,         poolstake, _taskid); // → Kitty / Burn\n\t\tlock  (KITTY_ADDRESS,         poolstake         ); // → Kitty / Burn\n\t}\n\n\t/***************************************************************************\n\t *                           ODB order signature                           *\n\t ***************************************************************************/\n\tfunction verifySignature(address _identity, bytes32 _hash, bytes calldata _signature)\n\texternal view override returns (bool)\n\t{\n\t\treturn _checkSignature(_identity, _hash, _signature);\n\t}\n\n\tfunction verifyPresignature(address _identity, bytes32 _hash)\n\texternal view override returns (bool)\n\t{\n\t\treturn _checkPresignature(_identity, _hash);\n\t}\n\n\tfunction verifyPresignatureOrSignature(address _identity, bytes32 _hash, bytes calldata _signature)\n\texternal view override returns (bool)\n\t{\n\t\treturn _checkPresignatureOrSignature(_identity, _hash, _signature);\n\t}\n\n\t/***************************************************************************\n\t *                           ODB order matching                            *\n\t ***************************************************************************/\n\t// should be external\n\tfunction matchOrders(\n\t\tIexecLibOrders_v5.AppOrder        memory _apporder,\n\t\tIexecLibOrders_v5.DatasetOrder    memory _datasetorder,\n\t\tIexecLibOrders_v5.WorkerpoolOrder memory _workerpoolorder,\n\t\tIexecLibOrders_v5.RequestOrder    memory _requestorder)\n\tpublic override returns (bytes32)\n\t{\n\t\t/**\n\t\t * Check orders compatibility\n\t\t */\n\n\t\t// computation environment & allowed enough funds\n\t\tbytes32 tag = _apporder.tag | _datasetorder.tag | _requestorder.tag;\n\t\trequire(_requestorder.category           == _workerpoolorder.category,        'iExecV5-matchOrders-0x00');\n\t\trequire(_requestorder.category            < m_categories.length,              'iExecV5-matchOrders-0x01');\n\t\trequire(_requestorder.trust              <= _workerpoolorder.trust,           'iExecV5-matchOrders-0x02');\n\t\trequire(_requestorder.appmaxprice        >= _apporder.appprice,               'iExecV5-matchOrders-0x03');\n\t\trequire(_requestorder.datasetmaxprice    >= _datasetorder.datasetprice,       'iExecV5-matchOrders-0x04');\n\t\trequire(_requestorder.workerpoolmaxprice >= _workerpoolorder.workerpoolprice, 'iExecV5-matchOrders-0x05');\n\t\trequire(tag & ~_workerpoolorder.tag      == 0x0,                              'iExecV5-matchOrders-0x06');\n\t\trequire((tag ^ _apporder.tag)[31] & 0x01 == 0x0,                              'iExecV5-matchOrders-0x07');\n\n\t\t// Check matching and restrictions\n\t\trequire(_requestorder.app     == _apporder.app,                                                                                                                   'iExecV5-matchOrders-0x10');\n\t\trequire(_requestorder.dataset == _datasetorder.dataset,                                                                                                           'iExecV5-matchOrders-0x11');\n\t\trequire(_requestorder.workerpool           == address(0) || _checkIdentity(_requestorder.workerpool,           _workerpoolorder.workerpool, GROUPMEMBER_PURPOSE), 'iExecV5-matchOrders-0x12'); // requestorder.workerpool is a restriction\n\t\trequire(_apporder.datasetrestrict          == address(0) || _checkIdentity(_apporder.datasetrestrict,          _datasetorder.dataset,       GROUPMEMBER_PURPOSE), 'iExecV5-matchOrders-0x13');\n\t\trequire(_apporder.workerpoolrestrict       == address(0) || _checkIdentity(_apporder.workerpoolrestrict,       _workerpoolorder.workerpool, GROUPMEMBER_PURPOSE), 'iExecV5-matchOrders-0x14');\n\t\trequire(_apporder.requesterrestrict        == address(0) || _checkIdentity(_apporder.requesterrestrict,        _requestorder.requester,     GROUPMEMBER_PURPOSE), 'iExecV5-matchOrders-0x15');\n\t\trequire(_datasetorder.apprestrict          == address(0) || _checkIdentity(_datasetorder.apprestrict,          _apporder.app,               GROUPMEMBER_PURPOSE), 'iExecV5-matchOrders-0x16');\n\t\trequire(_datasetorder.workerpoolrestrict   == address(0) || _checkIdentity(_datasetorder.workerpoolrestrict,   _workerpoolorder.workerpool, GROUPMEMBER_PURPOSE), 'iExecV5-matchOrders-0x17');\n\t\trequire(_datasetorder.requesterrestrict    == address(0) || _checkIdentity(_datasetorder.requesterrestrict,    _requestorder.requester,     GROUPMEMBER_PURPOSE), 'iExecV5-matchOrders-0x18');\n\t\trequire(_workerpoolorder.apprestrict       == address(0) || _checkIdentity(_workerpoolorder.apprestrict,       _apporder.app,               GROUPMEMBER_PURPOSE), 'iExecV5-matchOrders-0x19');\n\t\trequire(_workerpoolorder.datasetrestrict   == address(0) || _checkIdentity(_workerpoolorder.datasetrestrict,   _datasetorder.dataset,       GROUPMEMBER_PURPOSE), 'iExecV5-matchOrders-0x1a');\n\t\trequire(_workerpoolorder.requesterrestrict == address(0) || _checkIdentity(_workerpoolorder.requesterrestrict, _requestorder.requester,     GROUPMEMBER_PURPOSE), 'iExecV5-matchOrders-0x1b');\n\n\t\t/**\n\t\t * Check orders authenticity\n\t\t */\n\t\tMatching memory ids;\n\t\tids.hasDataset = _datasetorder.dataset != address(0);\n\n\t\t// app\n\t\tids.apporderStruct = _toEthTypedStruct(_apporder.hash(), EIP712DOMAIN_SEPARATOR);\n\t\tids.apporderHash   = keccak256(ids.apporderStruct);\n\t\tids.appOwner       = App(_apporder.app).owner();\n\n\t\trequire(m_appregistry.isRegistered(_apporder.app),                                       'iExecV5-matchOrders-0x20');\n\t\trequire(_checkPresignatureOrSignature(ids.appOwner, ids.apporderStruct, _apporder.sign), 'iExecV5-matchOrders-0x21');\n\n\t\t// dataset\n\t\tif (ids.hasDataset) // only check if dataset is enabled\n\t\t{\n\t\t\tids.datasetorderStruct = _toEthTypedStruct(_datasetorder.hash(), EIP712DOMAIN_SEPARATOR);\n\t\t\tids.datasetorderHash   = keccak256(ids.datasetorderStruct);\n\t\t\tids.datasetOwner       = Dataset(_datasetorder.dataset).owner();\n\n\t\t\trequire(m_datasetregistry.isRegistered(_datasetorder.dataset),                                       'iExecV5-matchOrders-0x30');\n\t\t\trequire(_checkPresignatureOrSignature(ids.datasetOwner, ids.datasetorderStruct, _datasetorder.sign), 'iExecV5-matchOrders-0x31');\n\t\t}\n\n\t\t// workerpool\n\t\tids.workerpoolorderStruct = _toEthTypedStruct(_workerpoolorder.hash(), EIP712DOMAIN_SEPARATOR);\n\t\tids.workerpoolorderHash   = keccak256(ids.workerpoolorderStruct);\n\t\tids.workerpoolOwner       = Workerpool(_workerpoolorder.workerpool).owner();\n\n\t\trequire(m_workerpoolregistry.isRegistered(_workerpoolorder.workerpool),                                       'iExecV5-matchOrders-0x40');\n\t\trequire(_checkPresignatureOrSignature(ids.workerpoolOwner, ids.workerpoolorderStruct, _workerpoolorder.sign), 'iExecV5-matchOrders-0x41');\n\n\t\t// request\n\t\tids.requestorderStruct = _toEthTypedStruct(_requestorder.hash(), EIP712DOMAIN_SEPARATOR);\n\t\tids.requestorderHash   = keccak256(ids.requestorderStruct);\n\t\trequire(_checkPresignatureOrSignature(_requestorder.requester, ids.requestorderStruct, _requestorder.sign), 'iExecV5-matchOrders-0x50');\n\n\t\t/**\n\t\t * Check availability\n\t\t */\n\t\tuint256 volume;\n\t\tvolume =                             _apporder.volume.sub       (m_consumed[ids.apporderHash       ]);\n\t\tvolume = ids.hasDataset ? volume.min(_datasetorder.volume.sub   (m_consumed[ids.datasetorderHash   ])) : volume;\n\t\tvolume =                  volume.min(_workerpoolorder.volume.sub(m_consumed[ids.workerpoolorderHash]));\n\t\tvolume =                  volume.min(_requestorder.volume.sub   (m_consumed[ids.requestorderHash   ]));\n\t\trequire(volume > 0, 'iExecV5-matchOrders-0x60');\n\n\t\t/**\n\t\t * Record\n\t\t */\n\t\tbytes32 dealid = keccak256(abi.encodePacked(\n\t\t\tids.requestorderHash,            // requestHash\n\t\t\tm_consumed[ids.requestorderHash] // idx of first subtask\n\t\t));\n\n\t\tIexecLibCore_v5.Deal storage deal = m_deals[dealid];\n\t\tdeal.app.pointer          = _apporder.app;\n\t\tdeal.app.owner            = ids.appOwner;\n\t\tdeal.app.price            = _apporder.appprice;\n\t\tdeal.dataset.owner        = ids.datasetOwner;\n\t\tdeal.dataset.pointer      = _datasetorder.dataset;\n\t\tdeal.dataset.price        = ids.hasDataset ? _datasetorder.datasetprice : 0;\n\t\tdeal.workerpool.pointer   = _workerpoolorder.workerpool;\n\t\tdeal.workerpool.owner     = ids.workerpoolOwner;\n\t\tdeal.workerpool.price     = _workerpoolorder.workerpoolprice;\n\t\tdeal.trust                = _requestorder.trust.max(1);\n\t\tdeal.category             = _requestorder.category;\n\t\tdeal.tag                  = tag;\n\t\tdeal.requester            = _requestorder.requester;\n\t\tdeal.beneficiary          = _requestorder.beneficiary;\n\t\tdeal.callback             = _requestorder.callback;\n\t\tdeal.params               = _requestorder.params;\n\t\tdeal.startTime            = now;\n\t\tdeal.botFirst             = m_consumed[ids.requestorderHash];\n\t\tdeal.botSize              = volume;\n\t\tdeal.workerStake          = _workerpoolorder.workerpoolprice.percentage(Workerpool(_workerpoolorder.workerpool).m_workerStakeRatioPolicy());\n\t\tdeal.schedulerRewardRatio = Workerpool(_workerpoolorder.workerpool).m_schedulerRewardRatioPolicy();\n\n\t\t/**\n\t\t * Update consumed\n\t\t */\n\t\tm_consumed[ids.apporderHash       ] = m_consumed[ids.apporderHash       ].add(                 volume    );\n\t\tm_consumed[ids.datasetorderHash   ] = m_consumed[ids.datasetorderHash   ].add(ids.hasDataset ? volume : 0);\n\t\tm_consumed[ids.workerpoolorderHash] = m_consumed[ids.workerpoolorderHash].add(                 volume    );\n\t\tm_consumed[ids.requestorderHash   ] = m_consumed[ids.requestorderHash   ].add(                 volume    );\n\n\t\t/**\n\t\t * Lock\n\t\t */\n\t\tlock(\n\t\t\tdeal.requester,\n\t\t\tdeal.app.price\n\t\t\t.add(deal.dataset.price)\n\t\t\t.add(deal.workerpool.price)\n\t\t\t.mul(volume)\n\t\t);\n\t\tlock(\n\t\t\tdeal.workerpool.owner,\n\t\t\tdeal.workerpool.price\n\t\t\t.percentage(WORKERPOOL_STAKE_RATIO) // ORDER IS IMPORTANT HERE!\n\t\t\t.mul(volume)                        // ORDER IS IMPORTANT HERE!\n\t\t);\n\n\t\t/**\n\t\t * Advertize deal\n\t\t */\n\t\temit SchedulerNotice(deal.workerpool.pointer, dealid);\n\n\t\t/**\n\t\t * Advertize consumption\n\t\t */\n\t\temit OrdersMatched(\n\t\t\tdealid\n\t\t,\tids.apporderHash\n\t\t,\tids.datasetorderHash\n\t\t,\tids.workerpoolorderHash\n\t\t,\tids.requestorderHash\n\t\t,\tvolume\n\t\t);\n\n\t\treturn dealid;\n\t}\n\n\t/***************************************************************************\n\t *                            Consensus methods                            *\n\t ***************************************************************************/\n\tfunction initialize(bytes32 _dealid, uint256 idx)\n\tpublic override returns (bytes32)\n\t{\n\t\tIexecLibCore_v5.Deal memory deal = m_deals[_dealid];\n\n\t\trequire(idx >= deal.botFirst                  );\n\t\trequire(idx <  deal.botFirst.add(deal.botSize));\n\n\t\tbytes32 taskid  = keccak256(abi.encodePacked(_dealid, idx));\n\t\tIexecLibCore_v5.Task storage task = m_tasks[taskid];\n\t\trequire(task.status == IexecLibCore_v5.TaskStatusEnum.UNSET);\n\n\t\ttask.status               = IexecLibCore_v5.TaskStatusEnum.ACTIVE;\n\t\ttask.dealid               = _dealid;\n\t\ttask.idx                  = idx;\n\t\ttask.timeref              = m_categories[deal.category].workClockTimeRef;\n\t\ttask.contributionDeadline = task.timeref.mul(CONTRIBUTION_DEADLINE_RATIO).add(deal.startTime);\n\t\ttask.finalDeadline        = task.timeref.mul(       FINAL_DEADLINE_RATIO).add(deal.startTime);\n\n\t\t// setup denominator\n\t\tm_consensus[taskid].total = 1;\n\n\t\temit TaskInitialize(taskid, deal.workerpool.pointer);\n\n\t\treturn taskid;\n\t}\n\n\t// TODO / COMPILER ERROR: making it external causes \"stack too deep\" error\n\tfunction contribute(\n\t\tbytes32      _taskid,\n\t\tbytes32      _resultHash,\n\t\tbytes32      _resultSeal,\n\t\taddress      _enclaveChallenge,\n\t\tbytes memory _enclaveSign,\n\t\tbytes memory _authorizationSign)\n\tpublic override\n\t{\n\t\tIexecLibCore_v5.Task         storage task         = m_tasks[_taskid];\n\t\tIexecLibCore_v5.Contribution storage contribution = m_contributions[_taskid][_msgSender()];\n\t\tIexecLibCore_v5.Deal         memory  deal         = m_deals[task.dealid];\n\n\t\trequire(task.status               == IexecLibCore_v5.TaskStatusEnum.ACTIVE       );\n\t\trequire(task.contributionDeadline >  now                                         );\n\t\trequire(contribution.status       == IexecLibCore_v5.ContributionStatusEnum.UNSET);\n\n\t\t// need enclave challenge if tag is set\n\t\trequire(_enclaveChallenge != address(0) || (deal.tag[31] & 0x01 == 0));\n\n\t\t// Check that the worker + taskid + enclave combo is authorized to contribute (scheduler signature)\n\t\trequire(_checkSignature(\n\t\t\t( _enclaveChallenge != address(0) && m_teebroker != address(0) ) ? m_teebroker : deal.workerpool.owner,\n\t\t\t_toEthSignedMessage(keccak256(abi.encodePacked(\n\t\t\t\t_msgSender(),\n\t\t\t\t_taskid,\n\t\t\t\t_enclaveChallenge\n\t\t\t))),\n\t\t\t_authorizationSign\n\t\t));\n\n\t\t// Check enclave signature\n\t\trequire(_enclaveChallenge == address(0) || _checkSignature(\n\t\t\t_enclaveChallenge,\n\t\t\t_toEthSignedMessage(keccak256(abi.encodePacked(\n\t\t\t\t_resultHash,\n\t\t\t\t_resultSeal\n\t\t\t))),\n\t\t\t_enclaveSign\n\t\t));\n\n\t\t// Update contribution entry\n\t\tcontribution.status           = IexecLibCore_v5.ContributionStatusEnum.CONTRIBUTED;\n\t\tcontribution.resultHash       = _resultHash;\n\t\tcontribution.resultSeal       = _resultSeal;\n\t\tcontribution.enclaveChallenge = _enclaveChallenge;\n\t\ttask.contributors.push(_msgSender());\n\n\t\tlockContribution(task.dealid, _msgSender());\n\n\t\temit TaskContribute(_taskid, _msgSender(), _resultHash);\n\n\t\t// Contribution done → updating and checking consensus\n\n\t\t/*************************************************************************\n\t\t *                           SCORE POLICY 1/3                            *\n\t\t *                                                                       *\n\t\t *                          see documentation!                           *\n\t\t *************************************************************************/\n\t\t// k = 3\n\t\tIexecLibCore_v5.Consensus storage consensus = m_consensus[_taskid];\n\n\t\tuint256 weight = m_workerScores[_msgSender()].div(3).max(3).sub(1);\n\t\tuint256 group  = consensus.group[_resultHash];\n\t\tuint256 delta  = group.max(1).mul(weight).sub(group);\n\n\t\tcontribution.weight          = weight.log();\n\t\tconsensus.group[_resultHash] = consensus.group[_resultHash].add(delta);\n\t\tconsensus.total              = consensus.total.add(delta);\n\n\t\t// Check consensus\n\t\tcheckConsensus(_taskid, _resultHash);\n\t}\n\n\tfunction reveal(\n\t\tbytes32 _taskid,\n\t\tbytes32 _resultDigest)\n\texternal override // worker\n\t{\n\t\tIexecLibCore_v5.Task         storage task         = m_tasks[_taskid];\n\t\tIexecLibCore_v5.Contribution storage contribution = m_contributions[_taskid][_msgSender()];\n\t\trequire(task.status             == IexecLibCore_v5.TaskStatusEnum.REVEALING                         );\n\t\trequire(task.revealDeadline     >  now                                                              );\n\t\trequire(contribution.status     == IexecLibCore_v5.ContributionStatusEnum.CONTRIBUTED               );\n\t\trequire(contribution.resultHash == task.consensusValue                                              );\n\t\trequire(contribution.resultHash == keccak256(abi.encodePacked(              _taskid, _resultDigest)));\n\t\trequire(contribution.resultSeal == keccak256(abi.encodePacked(_msgSender(), _taskid, _resultDigest)));\n\n\t\tcontribution.status = IexecLibCore_v5.ContributionStatusEnum.PROVED;\n\t\ttask.revealCounter  = task.revealCounter.add(1);\n\t\ttask.resultDigest   = _resultDigest;\n\n\t\temit TaskReveal(_taskid, _msgSender(), _resultDigest);\n\t}\n\n\tfunction reopen(\n\t\tbytes32 _taskid)\n\texternal override onlyScheduler(_taskid)\n\t{\n\t\tIexecLibCore_v5.Task storage task = m_tasks[_taskid];\n\t\trequire(task.status         == IexecLibCore_v5.TaskStatusEnum.REVEALING);\n\t\trequire(task.finalDeadline  >  now                                     );\n\t\trequire(task.revealDeadline <= now && task.revealCounter == 0          );\n\n\t\tfor (uint256 i = 0; i < task.contributors.length; ++i)\n\t\t{\n\t\t\taddress worker = task.contributors[i];\n\t\t\tif (m_contributions[_taskid][worker].resultHash == task.consensusValue)\n\t\t\t{\n\t\t\t\tm_contributions[_taskid][worker].status = IexecLibCore_v5.ContributionStatusEnum.REJECTED;\n\t\t\t}\n\t\t}\n\n\t\tIexecLibCore_v5.Consensus storage consensus = m_consensus[_taskid];\n\t\tconsensus.total = consensus.total.sub(consensus.group[task.consensusValue]);\n\t\tconsensus.group[task.consensusValue] = 0;\n\n\t\ttask.status         = IexecLibCore_v5.TaskStatusEnum.ACTIVE;\n\t\ttask.consensusValue = 0x0;\n\t\ttask.revealDeadline = 0;\n\t\ttask.winnerCounter  = 0;\n\n\t\temit TaskReopen(_taskid);\n\t}\n\n\tfunction finalize(\n\t\tbytes32          _taskid,\n\t\tbytes   calldata _results)\n\texternal override onlyScheduler(_taskid)\n\t{\n\t\tIexecLibCore_v5.Task storage task = m_tasks[_taskid];\n\t\tIexecLibCore_v5.Deal memory  deal = m_deals[task.dealid];\n\n\t\trequire(task.status        == IexecLibCore_v5.TaskStatusEnum.REVEALING                                    );\n\t\trequire(task.finalDeadline >  now                                                                         );\n\t\trequire(task.revealCounter == task.winnerCounter || (task.revealCounter > 0 && task.revealDeadline <= now));\n\n\t\trequire(deal.callback == address(0) || keccak256(_results) == task.resultDigest);\n\n\t\ttask.status  = IexecLibCore_v5.TaskStatusEnum.COMPLETED;\n\t\ttask.results = _results;\n\n\t\t/**\n\t\t * Stake and reward management\n\t\t */\n\t\tsuccessWork(task.dealid, _taskid);\n\t\tdistributeRewards(_taskid);\n\n\t\t/**\n\t\t * Event\n\t\t */\n\t\temit TaskFinalize(_taskid, _results);\n\n\t\texecuteCallback(_taskid, _results);\n\t}\n\n\tfunction claim(\n\t\tbytes32 _taskid)\n\tpublic override\n\t{\n\t\tIexecLibCore_v5.Task storage task = m_tasks[_taskid];\n\t\trequire(task.status == IexecLibCore_v5.TaskStatusEnum.ACTIVE\n\t\t     || task.status == IexecLibCore_v5.TaskStatusEnum.REVEALING);\n\t\trequire(task.finalDeadline <= now);\n\n\t\ttask.status = IexecLibCore_v5.TaskStatusEnum.FAILED;\n\n\t\t/**\n\t\t * Stake management\n\t\t */\n\t\tfailedWork(task.dealid, _taskid);\n\t\tfor (uint256 i = 0; i < task.contributors.length; ++i)\n\t\t{\n\t\t\taddress worker = task.contributors[i];\n\t\t\tunlockContribution(task.dealid, worker);\n\t\t}\n\n\t\temit TaskClaimed(_taskid);\n\t}\n\n\t// TODO / COMPILER ERROR: making it external causes \"stack too deep\" error\n\tfunction contributeAndFinalize(\n\t\tbytes32      _taskid,\n\t\tbytes32      _resultDigest,\n\t\tbytes memory _results,\n\t\taddress      _enclaveChallenge,\n\t\tbytes memory _enclaveSign,\n\t\tbytes memory _authorizationSign)\n\tpublic override\n\t{\n\t\tIexecLibCore_v5.Task         storage task         = m_tasks[_taskid];\n\t\tIexecLibCore_v5.Contribution storage contribution = m_contributions[_taskid][_msgSender()];\n\t\tIexecLibCore_v5.Deal         memory  deal         = m_deals[task.dealid];\n\n\t\trequire(task.status               == IexecLibCore_v5.TaskStatusEnum.ACTIVE);\n\t\trequire(task.contributionDeadline >  now                                  );\n\t\trequire(task.contributors.length  == 0                                    );\n\t\trequire(deal.trust                == 1                                    ); // TODO / FUTURE FEATURE: consider sender's score ?\n\n\t\tbytes32 resultHash = keccak256(abi.encodePacked(              _taskid, _resultDigest));\n\t\tbytes32 resultSeal = keccak256(abi.encodePacked(_msgSender(), _taskid, _resultDigest));\n\n\t\trequire(deal.callback == address(0) || keccak256(_results) == _resultDigest);\n\n\t\t// need enclave challenge if tag is set\n\t\trequire(_enclaveChallenge != address(0) || (deal.tag[31] & 0x01 == 0));\n\n\t\t// Check that the worker + taskid + enclave combo is authorized to contribute (scheduler signature)\n\t\trequire(_checkSignature(\n\t\t\t( _enclaveChallenge != address(0) && m_teebroker != address(0) ) ? m_teebroker : deal.workerpool.owner,\n\t\t\t_toEthSignedMessage(keccak256(abi.encodePacked(\n\t\t\t\t_msgSender(),\n\t\t\t\t_taskid,\n\t\t\t\t_enclaveChallenge\n\t\t\t))),\n\t\t\t_authorizationSign\n\t\t));\n\n\t\t// Check enclave signature\n\t\trequire(_enclaveChallenge == address(0) || _checkSignature(\n\t\t\t_enclaveChallenge,\n\t\t\t_toEthSignedMessage(keccak256(abi.encodePacked(\n\t\t\t\tresultHash,\n\t\t\t\tresultSeal\n\t\t\t))),\n\t\t\t_enclaveSign\n\t\t));\n\n\t\tcontribution.status           = IexecLibCore_v5.ContributionStatusEnum.PROVED;\n\t\tcontribution.resultHash       = resultHash;\n\t\tcontribution.resultSeal       = resultSeal;\n\t\tcontribution.enclaveChallenge = _enclaveChallenge;\n\n\t\ttask.status                   = IexecLibCore_v5.TaskStatusEnum.COMPLETED;\n\t\ttask.consensusValue           = contribution.resultHash;\n\t\ttask.revealDeadline           = task.timeref.mul(REVEAL_DEADLINE_RATIO).add(now);\n\t\ttask.revealCounter            = 1;\n\t\ttask.winnerCounter            = 1;\n\t\ttask.resultDigest             = _resultDigest;\n\t\ttask.results                  = _results;\n\t\ttask.contributors.push(_msgSender());\n\n\t\tsuccessWork(task.dealid, _taskid);\n\n\t\t// simple reward, no score consideration\n\t\tuint256 workerReward    = deal.workerpool.price.percentage(uint256(100).sub(deal.schedulerRewardRatio));\n\t\tuint256 schedulerReward = deal.workerpool.price.sub(workerReward);\n\t\trewardForContribution(_msgSender(), workerReward, _taskid);\n\t\trewardForScheduling(task.dealid, schedulerReward, _taskid);\n\n\t\temit TaskContribute(_taskid, _msgSender(), resultHash);\n\t\temit TaskConsensus(_taskid, resultHash);\n\t\temit TaskReveal(_taskid, _msgSender(), _resultDigest);\n\t\temit TaskFinalize(_taskid, _results);\n\n\t\texecuteCallback(_taskid, _results);\n\t}\n\n\t/***************************************************************************\n\t *                       Internal Consensus methods                        *\n\t ***************************************************************************/\n\t/*\n\t * Consensus detection\n\t */\n\tfunction checkConsensus(\n\t\tbytes32 _taskid,\n\t\tbytes32 _consensus)\n\tinternal\n\t{\n\t\tIexecLibCore_v5.Task      storage task      = m_tasks[_taskid];\n\t\tIexecLibCore_v5.Consensus storage consensus = m_consensus[_taskid];\n\n\t\tuint256 trust = m_deals[task.dealid].trust;\n\t\t/*************************************************************************\n\t\t *                          Consensus detection                          *\n\t\t *                                                                       *\n\t\t *                          see documentation:                           *\n\t\t *          ./ audit/docs/iExec_PoCo_and_trustmanagement_v1.pdf          *\n\t\t *************************************************************************/\n\t\tif (consensus.group[_consensus].mul(trust) > consensus.total.mul(trust.sub(1)))\n\t\t{\n\t\t\t// Preliminary checks done in \"contribute()\"\n\t\t\tuint256 winnerCounter = 0;\n\t\t\tfor (uint256 i = 0; i < task.contributors.length; ++i)\n\t\t\t{\n\t\t\t\taddress w = task.contributors[i];\n\t\t\t\tif\n\t\t\t\t(\n\t\t\t\t\tm_contributions[_taskid][w].resultHash == _consensus\n\t\t\t\t\t&&\n\t\t\t\t\tm_contributions[_taskid][w].status == IexecLibCore_v5.ContributionStatusEnum.CONTRIBUTED // REJECTED contribution must not be count\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\twinnerCounter = winnerCounter.add(1);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// _msgSender() is a contributor: no need to check\n\t\t\ttask.status         = IexecLibCore_v5.TaskStatusEnum.REVEALING;\n\t\t\ttask.consensusValue = _consensus;\n\t\t\ttask.revealDeadline = task.timeref.mul(REVEAL_DEADLINE_RATIO).add(now);\n\t\t\ttask.revealCounter  = 0;\n\t\t\ttask.winnerCounter  = winnerCounter;\n\n\t\t\temit TaskConsensus(_taskid, _consensus);\n\t\t}\n\t}\n\n\t/*\n\t * Reward distribution\n\t */\n\tfunction distributeRewards(bytes32 _taskid)\n\tinternal\n\t{\n\t\tIexecLibCore_v5.Task storage task = m_tasks[_taskid];\n\t\tIexecLibCore_v5.Deal memory  deal = m_deals[task.dealid];\n\n\t\tuint256 totalLogWeight = 0;\n\t\tuint256 totalReward    = deal.workerpool.price;\n\n\t\tfor (uint256 i = 0; i < task.contributors.length; ++i)\n\t\t{\n\t\t\taddress                              worker       = task.contributors[i];\n\t\t\tIexecLibCore_v5.Contribution storage contribution = m_contributions[_taskid][worker];\n\n\t\t\tif (contribution.status == IexecLibCore_v5.ContributionStatusEnum.PROVED)\n\t\t\t{\n\t\t\t\ttotalLogWeight = totalLogWeight.add(contribution.weight);\n\t\t\t}\n\t\t\telse // ContributionStatusEnum.REJECT or ContributionStatusEnum.CONTRIBUTED (not revealed)\n\t\t\t{\n\t\t\t\ttotalReward = totalReward.add(deal.workerStake);\n\t\t\t}\n\t\t}\n\n\t\t// compute how much is going to the workers\n\t\tuint256 workersReward = totalReward.percentage(uint256(100).sub(deal.schedulerRewardRatio));\n\n\t\tfor (uint256 i = 0; i < task.contributors.length; ++i)\n\t\t{\n\t\t\taddress                              worker       = task.contributors[i];\n\t\t\tIexecLibCore_v5.Contribution storage contribution = m_contributions[_taskid][worker];\n\n\t\t\tif (contribution.status == IexecLibCore_v5.ContributionStatusEnum.PROVED)\n\t\t\t{\n\t\t\t\tuint256 workerReward = workersReward.mulByFraction(contribution.weight, totalLogWeight);\n\t\t\t\ttotalReward          = totalReward.sub(workerReward);\n\n\t\t\t\tunlockContribution(task.dealid, worker);\n\t\t\t\trewardForContribution(worker, workerReward, _taskid);\n\n\t\t\t\t// Only reward if replication happened\n\t\t\t\tif (task.contributors.length > 1)\n\t\t\t\t{\n\t\t\t\t\t/*******************************************************************\n\t\t\t\t\t *                        SCORE POLICY 2/3                         *\n\t\t\t\t\t *                                                                 *\n\t\t\t\t\t *                       see documentation!                        *\n\t\t\t\t\t *******************************************************************/\n\t\t\t\t\tm_workerScores[worker] = m_workerScores[worker].add(1);\n\t\t\t\t\temit AccurateContribution(worker, _taskid);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse // WorkStatusEnum.POCO_REJECT or ContributionStatusEnum.CONTRIBUTED (not revealed)\n\t\t\t{\n\t\t\t\t// No Reward\n\t\t\t\tseizeContribution(task.dealid, worker, _taskid);\n\n\t\t\t\t// Always punish bad contributors\n\t\t\t\t{\n\t\t\t\t\t/*******************************************************************\n\t\t\t\t\t *                        SCORE POLICY 3/3                         *\n\t\t\t\t\t *                                                                 *\n\t\t\t\t\t *                       see documentation!                        *\n\t\t\t\t\t *******************************************************************/\n\t\t\t\t\t// k = 3\n\t\t\t\t\tm_workerScores[worker] = m_workerScores[worker].mulByFraction(2,3);\n\t\t\t\t\temit FaultyContribution(worker, _taskid);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// totalReward now contains the scheduler share\n\t\trewardForScheduling(task.dealid, totalReward, _taskid);\n\t}\n\n\t/**\n\t * Callback for smartcontracts using EIP1154\n\t */\n\tfunction executeCallback(bytes32 _taskid, bytes memory _results)\n\tinternal\n\t{\n\t\taddress target = m_deals[m_tasks[_taskid].dealid].callback;\n\t\tif (target != address(0))\n\t\t{\n\t\t\t/**\n\t\t\t * Call does not revert if the target smart contract is incompatible or reverts\n\t\t\t * Solidity 0.6.0 update. Check hit history for 0.5.0 implementation.\n\t\t\t */\n\t\t\ttry IOracleConsumer(target).receiveResult{gas: m_callbackgas}(_taskid, _results)\n\t\t\t{\n\t\t\t\t// Callback success, do nothing\n\t\t\t}\n\t\t\tcatch (bytes memory /*lowLevelData*/)\n\t\t\t{\n\t\t\t\t// Check gas: https://ronan.eth.link/blog/ethereum-gas-dangers/\n\t\t\t\tassert(gasleft() > m_callbackgas / 63); // no need for safemath here\n\t\t\t}\n\t\t}\n\t}\n\n\t/***************************************************************************\n\t *                            Array operations                             *\n\t ***************************************************************************/\n\tfunction initializeArray(\n\t\tbytes32[] calldata _dealid,\n\t\tuint256[] calldata _idx)\n\texternal override returns (bool)\n\t{\n\t\trequire(_dealid.length == _idx.length);\n\t\tfor (uint i = 0; i < _dealid.length; ++i)\n\t\t{\n\t\t\tinitialize(_dealid[i], _idx[i]);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction claimArray(\n\t\tbytes32[] calldata _taskid)\n\texternal override returns (bool)\n\t{\n\t\tfor (uint i = 0; i < _taskid.length; ++i)\n\t\t{\n\t\t\tclaim(_taskid[i]);\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction initializeAndClaimArray(\n\t\tbytes32[] calldata _dealid,\n\t\tuint256[] calldata _idx)\n\texternal override returns (bool)\n\t{\n\t\trequire(_dealid.length == _idx.length);\n\t\tfor (uint i = 0; i < _dealid.length; ++i)\n\t\t{\n\t\t\tclaim(initialize(_dealid[i], _idx[i]));\n\t\t}\n\t\treturn true;\n\t}\n}\n",
  "sourcePath": "/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/delegates/IexecPocoDelegate.sol",
  "ast": {
    "absolutePath": "/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/delegates/IexecPocoDelegate.sol",
    "exportedSymbols": {
      "IexecPocoDelegate": [
        6368
      ],
      "Matching": [
        3183
      ]
    },
    "id": 6369,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3152,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:19"
      },
      {
        "id": 3153,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "24:33:19"
      },
      {
        "absolutePath": "@iexec/solidity/contracts/ERC1154/IERC1154.sol",
        "file": "@iexec/solidity/contracts/ERC1154/IERC1154.sol",
        "id": 3154,
        "nodeType": "ImportDirective",
        "scope": 6369,
        "sourceUnit": 10146,
        "src": "59:56:19",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/delegates/IexecERC20Common.sol",
        "file": "./IexecERC20Common.sol",
        "id": 3155,
        "nodeType": "ImportDirective",
        "scope": 6369,
        "sourceUnit": 1833,
        "src": "116:32:19",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/delegates/SignatureVerifier.sol",
        "file": "./SignatureVerifier.sol",
        "id": 3156,
        "nodeType": "ImportDirective",
        "scope": 6369,
        "sourceUnit": 6807,
        "src": "149:33:19",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/DelegateBase.sol",
        "file": "../DelegateBase.sol",
        "id": 3157,
        "nodeType": "ImportDirective",
        "scope": 6369,
        "sourceUnit": 845,
        "src": "183:29:19",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/interfaces/IexecPoco.sol",
        "file": "../interfaces/IexecPoco.sol",
        "id": 3158,
        "nodeType": "ImportDirective",
        "scope": 6369,
        "sourceUnit": 7710,
        "src": "213:37:19",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "canonicalName": "Matching",
        "id": 3183,
        "members": [
          {
            "constant": false,
            "id": 3160,
            "mutability": "mutable",
            "name": "apporderStruct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "272:22:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage_ptr",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 3159,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "272:5:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3162,
            "mutability": "mutable",
            "name": "apporderHash",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "297:20:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 3161,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "297:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3164,
            "mutability": "mutable",
            "name": "appOwner",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "320:16:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3163,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "320:7:19",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3166,
            "mutability": "mutable",
            "name": "datasetorderStruct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "339:26:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage_ptr",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 3165,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "339:5:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3168,
            "mutability": "mutable",
            "name": "datasetorderHash",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "368:24:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 3167,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "368:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3170,
            "mutability": "mutable",
            "name": "datasetOwner",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "395:20:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3169,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "395:7:19",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3172,
            "mutability": "mutable",
            "name": "workerpoolorderStruct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "418:29:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage_ptr",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 3171,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "418:5:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3174,
            "mutability": "mutable",
            "name": "workerpoolorderHash",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "450:27:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 3173,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "450:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3176,
            "mutability": "mutable",
            "name": "workerpoolOwner",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "480:23:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3175,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "480:7:19",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3178,
            "mutability": "mutable",
            "name": "requestorderStruct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "506:26:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage_ptr",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 3177,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "506:5:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3180,
            "mutability": "mutable",
            "name": "requestorderHash",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "535:24:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 3179,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "535:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3182,
            "mutability": "mutable",
            "name": "hasDataset",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "562:18:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 3181,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "562:4:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "name": "Matching",
        "nodeType": "StructDefinition",
        "scope": 6369,
        "src": "253:330:19",
        "visibility": "public"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3184,
              "name": "IexecPoco",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7709,
              "src": "615:9:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecPoco_$7709",
                "typeString": "contract IexecPoco"
              }
            },
            "id": 3185,
            "nodeType": "InheritanceSpecifier",
            "src": "615:9:19"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3186,
              "name": "DelegateBase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 844,
              "src": "626:12:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DelegateBase_$844",
                "typeString": "contract DelegateBase"
              }
            },
            "id": 3187,
            "nodeType": "InheritanceSpecifier",
            "src": "626:12:19"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3188,
              "name": "IexecERC20Common",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1832,
              "src": "640:16:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecERC20Common_$1832",
                "typeString": "contract IexecERC20Common"
              }
            },
            "id": 3189,
            "nodeType": "InheritanceSpecifier",
            "src": "640:16:19"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3190,
              "name": "SignatureVerifier",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6806,
              "src": "658:17:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SignatureVerifier_$6806",
                "typeString": "contract SignatureVerifier"
              }
            },
            "id": 3191,
            "nodeType": "InheritanceSpecifier",
            "src": "658:17:19"
          }
        ],
        "contractDependencies": [
          268,
          844,
          1832,
          6806,
          7709,
          10170,
          10182,
          10752,
          10861
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 6368,
        "linearizedBaseContracts": [
          6368,
          6806,
          1832,
          844,
          10170,
          268,
          10182,
          10861,
          10752,
          7709
        ],
        "name": "IexecPocoDelegate",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 3194,
            "libraryName": {
              "contractScope": null,
              "id": 3192,
              "name": "SafeMathExtended",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10554,
              "src": "685:16:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMathExtended_$10554",
                "typeString": "library SafeMathExtended"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "679:36:19",
            "typeName": {
              "id": 3193,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "707:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 3197,
            "libraryName": {
              "contractScope": null,
              "id": 3195,
              "name": "IexecLibOrders_v5",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 815,
              "src": "723:17:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecLibOrders_v5_$815",
                "typeString": "library IexecLibOrders_v5"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "717:55:19",
            "typeName": {
              "contractScope": null,
              "id": 3196,
              "name": "IexecLibOrders_v5.AppOrder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 441,
              "src": "745:26:19",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_AppOrder_$441_storage_ptr",
                "typeString": "struct IexecLibOrders_v5.AppOrder"
              }
            }
          },
          {
            "id": 3200,
            "libraryName": {
              "contractScope": null,
              "id": 3198,
              "name": "IexecLibOrders_v5",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 815,
              "src": "780:17:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecLibOrders_v5_$815",
                "typeString": "library IexecLibOrders_v5"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "774:59:19",
            "typeName": {
              "contractScope": null,
              "id": 3199,
              "name": "IexecLibOrders_v5.DatasetOrder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 460,
              "src": "802:30:19",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_DatasetOrder_$460_storage_ptr",
                "typeString": "struct IexecLibOrders_v5.DatasetOrder"
              }
            }
          },
          {
            "id": 3203,
            "libraryName": {
              "contractScope": null,
              "id": 3201,
              "name": "IexecLibOrders_v5",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 815,
              "src": "841:17:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecLibOrders_v5_$815",
                "typeString": "library IexecLibOrders_v5"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "835:62:19",
            "typeName": {
              "contractScope": null,
              "id": 3202,
              "name": "IexecLibOrders_v5.WorkerpoolOrder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 483,
              "src": "863:33:19",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_storage_ptr",
                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder"
              }
            }
          },
          {
            "id": 3206,
            "libraryName": {
              "contractScope": null,
              "id": 3204,
              "name": "IexecLibOrders_v5",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 815,
              "src": "905:17:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecLibOrders_v5_$815",
                "typeString": "library IexecLibOrders_v5"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "899:59:19",
            "typeName": {
              "contractScope": null,
              "id": 3205,
              "name": "IexecLibOrders_v5.RequestOrder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 516,
              "src": "927:30:19",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_RequestOrder_$516_storage_ptr",
                "typeString": "struct IexecLibOrders_v5.RequestOrder"
              }
            }
          },
          {
            "body": {
              "id": 3231,
              "nodeType": "Block",
              "src": "1287:101:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3219,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -28,
                            "src": "1309:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          ],
                          "id": 3218,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1301:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 3217,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1301:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 3220,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1301:13:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3221,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3209,
                        "src": "1316:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3222,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3211,
                        "src": "1322:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3216,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1697,
                      "src": "1291:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 3223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1291:38:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3224,
                  "nodeType": "ExpressionStatement",
                  "src": "1291:38:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3226,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3209,
                        "src": "1345:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3227,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3211,
                        "src": "1351:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3228,
                        "name": "ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3213,
                        "src": "1359:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3225,
                      "name": "Reward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7477,
                      "src": "1338:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1338:25:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3230,
                  "nodeType": "EmitStatement",
                  "src": "1333:30:19"
                }
              ]
            },
            "documentation": {
              "id": 3207,
              "nodeType": "StructuredDocumentation",
              "src": "961:233:19",
              "text": "*************************************************************************\n                       Escrow methods: internal                         ***************************************************************************"
            },
            "id": 3232,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "reward",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3214,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3209,
                  "mutability": "mutable",
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3232,
                  "src": "1212:12:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3208,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1212:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3211,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3232,
                  "src": "1226:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3210,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1226:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3213,
                  "mutability": "mutable",
                  "name": "ref",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3232,
                  "src": "1242:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3212,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1242:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1211:43:19"
            },
            "returnParameters": {
              "id": 3215,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1287:0:19"
            },
            "scope": 6368,
            "src": "1196:192:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3258,
              "nodeType": "Block",
              "src": "1481:107:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3241,
                        "name": "m_frozens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 192,
                        "src": "1485:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 3243,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3242,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3234,
                        "src": "1495:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1485:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3248,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3236,
                          "src": "1523:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3244,
                            "name": "m_frozens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 192,
                            "src": "1503:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 3246,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3245,
                            "name": "user",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3234,
                            "src": "1513:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1503:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10389,
                        "src": "1503:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3249,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1503:27:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1485:45:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3251,
                  "nodeType": "ExpressionStatement",
                  "src": "1485:45:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3253,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3234,
                        "src": "1545:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3254,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3236,
                        "src": "1551:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3255,
                        "name": "ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3238,
                        "src": "1559:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3252,
                      "name": "Seize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7485,
                      "src": "1539:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3256,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1539:24:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3257,
                  "nodeType": "EmitStatement",
                  "src": "1534:29:19"
                }
              ]
            },
            "documentation": null,
            "id": 3259,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "seize",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3239,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3234,
                  "mutability": "mutable",
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3259,
                  "src": "1406:12:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3233,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1406:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3236,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3259,
                  "src": "1420:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3235,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1420:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3238,
                  "mutability": "mutable",
                  "name": "ref",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3259,
                  "src": "1436:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3237,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1436:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1405:43:19"
            },
            "returnParameters": {
              "id": 3240,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1481:0:19"
            },
            "scope": 6368,
            "src": "1391:197:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3291,
              "nodeType": "Block",
              "src": "1667:143:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3267,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3261,
                        "src": "1681:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3270,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -28,
                            "src": "1695:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          ],
                          "id": 3269,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1687:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 3268,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1687:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 3271,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1687:13:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3272,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3263,
                        "src": "1702:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3266,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1697,
                      "src": "1671:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 3273,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1671:38:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3274,
                  "nodeType": "ExpressionStatement",
                  "src": "1671:38:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3284,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3275,
                        "name": "m_frozens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 192,
                        "src": "1713:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 3277,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3276,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3261,
                        "src": "1723:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1713:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3282,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3263,
                          "src": "1751:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3278,
                            "name": "m_frozens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 192,
                            "src": "1731:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 3280,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3279,
                            "name": "user",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3261,
                            "src": "1741:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1731:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3281,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "1731:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3283,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1731:27:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1713:45:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3285,
                  "nodeType": "ExpressionStatement",
                  "src": "1713:45:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3287,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3261,
                        "src": "1772:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3288,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3263,
                        "src": "1778:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3286,
                      "name": "Lock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7491,
                      "src": "1767:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3289,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1767:18:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3290,
                  "nodeType": "EmitStatement",
                  "src": "1762:23:19"
                }
              ]
            },
            "documentation": null,
            "id": 3292,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lock",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3264,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3261,
                  "mutability": "mutable",
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3292,
                  "src": "1605:12:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3260,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1605:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3263,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3292,
                  "src": "1619:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3262,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1619:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1604:30:19"
            },
            "returnParameters": {
              "id": 3265,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1667:0:19"
            },
            "scope": 6368,
            "src": "1591:219:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3324,
              "nodeType": "Block",
              "src": "1891:145:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3302,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -28,
                            "src": "1913:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          ],
                          "id": 3301,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1905:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 3300,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1905:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 3303,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1905:13:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3304,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3294,
                        "src": "1920:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3305,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3296,
                        "src": "1926:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3299,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1697,
                      "src": "1895:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 3306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1895:38:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3307,
                  "nodeType": "ExpressionStatement",
                  "src": "1895:38:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3317,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3308,
                        "name": "m_frozens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 192,
                        "src": "1937:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 3310,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3309,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3294,
                        "src": "1947:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1937:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3315,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3296,
                          "src": "1975:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3311,
                            "name": "m_frozens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 192,
                            "src": "1955:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 3313,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3312,
                            "name": "user",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3294,
                            "src": "1965:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1955:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3314,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10389,
                        "src": "1955:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3316,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1955:27:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1937:45:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3318,
                  "nodeType": "ExpressionStatement",
                  "src": "1937:45:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3320,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3294,
                        "src": "1998:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3321,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3296,
                        "src": "2004:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3319,
                      "name": "Unlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7497,
                      "src": "1991:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3322,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1991:20:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3323,
                  "nodeType": "EmitStatement",
                  "src": "1986:25:19"
                }
              ]
            },
            "documentation": null,
            "id": 3325,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unlock",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3294,
                  "mutability": "mutable",
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3325,
                  "src": "1829:12:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3293,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1829:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3296,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3325,
                  "src": "1843:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3295,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1843:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1828:30:19"
            },
            "returnParameters": {
              "id": 3298,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1891:0:19"
            },
            "scope": 6368,
            "src": "1813:223:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3341,
              "nodeType": "Block",
              "src": "2345:51:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3334,
                        "name": "_worker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3330,
                        "src": "2354:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3335,
                            "name": "m_deals",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 236,
                            "src": "2363:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                              "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                            }
                          },
                          "id": 3337,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3336,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3328,
                            "src": "2371:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2363:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage",
                            "typeString": "struct IexecLibCore_v5.Deal storage ref"
                          }
                        },
                        "id": 3338,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerStake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 317,
                        "src": "2363:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3333,
                      "name": "lock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3292,
                      "src": "2349:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3339,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2349:43:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3340,
                  "nodeType": "ExpressionStatement",
                  "src": "2349:43:19"
                }
              ]
            },
            "documentation": {
              "id": 3326,
              "nodeType": "StructuredDocumentation",
              "src": "2039:233:19",
              "text": "*************************************************************************\n                   Escrow overhead for contribution                     ***************************************************************************"
            },
            "id": 3342,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lockContribution",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3328,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3342,
                  "src": "2300:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3327,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2300:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3330,
                  "mutability": "mutable",
                  "name": "_worker",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3342,
                  "src": "2317:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3329,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2317:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2299:34:19"
            },
            "returnParameters": {
              "id": 3332,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2345:0:19"
            },
            "scope": 6368,
            "src": "2274:122:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3357,
              "nodeType": "Block",
              "src": "2472:53:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3350,
                        "name": "_worker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3346,
                        "src": "2483:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3351,
                            "name": "m_deals",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 236,
                            "src": "2492:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                              "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                            }
                          },
                          "id": 3353,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3352,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3344,
                            "src": "2500:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2492:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage",
                            "typeString": "struct IexecLibCore_v5.Deal storage ref"
                          }
                        },
                        "id": 3354,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerStake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 317,
                        "src": "2492:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3349,
                      "name": "unlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3325,
                      "src": "2476:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2476:45:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3356,
                  "nodeType": "ExpressionStatement",
                  "src": "2476:45:19"
                }
              ]
            },
            "documentation": null,
            "id": 3358,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unlockContribution",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3347,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3344,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3358,
                  "src": "2427:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3343,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2427:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3346,
                  "mutability": "mutable",
                  "name": "_worker",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3358,
                  "src": "2444:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3345,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2444:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2426:34:19"
            },
            "returnParameters": {
              "id": 3348,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2472:0:19"
            },
            "scope": 6368,
            "src": "2399:126:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3373,
              "nodeType": "Block",
              "src": "2621:41:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3368,
                        "name": "_worker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3360,
                        "src": "2632:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3369,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3362,
                        "src": "2641:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3370,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3364,
                        "src": "2650:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3367,
                      "name": "reward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3232,
                      "src": "2625:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3371,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2625:33:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3372,
                  "nodeType": "ExpressionStatement",
                  "src": "2625:33:19"
                }
              ]
            },
            "documentation": null,
            "id": 3374,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "rewardForContribution",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3365,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3360,
                  "mutability": "mutable",
                  "name": "_worker",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3374,
                  "src": "2559:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3359,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2559:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3362,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3374,
                  "src": "2576:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3361,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2576:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3364,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3374,
                  "src": "2593:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3363,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2593:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2558:51:19"
            },
            "returnParameters": {
              "id": 3366,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2621:0:19"
            },
            "scope": 6368,
            "src": "2528:134:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3392,
              "nodeType": "Block",
              "src": "2754:61:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3384,
                        "name": "_worker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3378,
                        "src": "2764:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3385,
                            "name": "m_deals",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 236,
                            "src": "2773:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                              "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                            }
                          },
                          "id": 3387,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3386,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3376,
                            "src": "2781:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2773:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage",
                            "typeString": "struct IexecLibCore_v5.Deal storage ref"
                          }
                        },
                        "id": 3388,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerStake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 317,
                        "src": "2773:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3389,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3380,
                        "src": "2803:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3383,
                      "name": "seize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3259,
                      "src": "2758:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3390,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2758:53:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3391,
                  "nodeType": "ExpressionStatement",
                  "src": "2758:53:19"
                }
              ]
            },
            "documentation": null,
            "id": 3393,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "seizeContribution",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3381,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3376,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3393,
                  "src": "2692:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3375,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2692:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3378,
                  "mutability": "mutable",
                  "name": "_worker",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3393,
                  "src": "2709:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3377,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2709:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3380,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3393,
                  "src": "2726:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3379,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2726:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2691:51:19"
            },
            "returnParameters": {
              "id": 3382,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2754:0:19"
            },
            "scope": 6368,
            "src": "2665:150:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3412,
              "nodeType": "Block",
              "src": "2909:67:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3403,
                              "name": "m_deals",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 236,
                              "src": "2920:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                                "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                              }
                            },
                            "id": 3405,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3404,
                              "name": "_dealid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3395,
                              "src": "2928:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2920:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage",
                              "typeString": "struct IexecLibCore_v5.Deal storage ref"
                            }
                          },
                          "id": 3406,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "2920:27:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3407,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 286,
                        "src": "2920:33:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3408,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3397,
                        "src": "2955:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3409,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3399,
                        "src": "2964:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3402,
                      "name": "reward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3232,
                      "src": "2913:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3410,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2913:59:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3411,
                  "nodeType": "ExpressionStatement",
                  "src": "2913:59:19"
                }
              ]
            },
            "documentation": null,
            "id": 3413,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "rewardForScheduling",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3400,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3395,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3413,
                  "src": "2847:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3394,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2847:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3397,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3413,
                  "src": "2864:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3396,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2864:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3399,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3413,
                  "src": "2881:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3398,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2881:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2846:51:19"
            },
            "returnParameters": {
              "id": 3401,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2909:0:19"
            },
            "scope": 6368,
            "src": "2818:158:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3548,
              "nodeType": "Block",
              "src": "3045:1162:19",
              "statements": [
                {
                  "assignments": [
                    3423
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3423,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3548,
                      "src": "3049:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3422,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "3049:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3427,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3424,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "3085:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 3426,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3425,
                      "name": "_dealid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3415,
                      "src": "3093:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3085:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3049:52:19"
                },
                {
                  "assignments": [
                    3429
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3429,
                      "mutability": "mutable",
                      "name": "requesterstake",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3548,
                      "src": "3106:22:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3428,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3106:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3443,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3439,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3423,
                            "src": "3230:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3440,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "3230:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3441,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "3230:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3434,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3423,
                                "src": "3178:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                }
                              },
                              "id": 3435,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "dataset",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 293,
                              "src": "3178:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Resource_$289_storage",
                                "typeString": "struct IexecLibCore_v5.Resource storage ref"
                              }
                            },
                            "id": 3436,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "price",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 288,
                            "src": "3178:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3430,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3423,
                                "src": "3131:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                }
                              },
                              "id": 3431,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "app",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 291,
                              "src": "3131:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Resource_$289_storage",
                                "typeString": "struct IexecLibCore_v5.Resource storage ref"
                              }
                            },
                            "id": 3432,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "price",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 288,
                            "src": "3131:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3433,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "add",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10364,
                          "src": "3131:46:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 3437,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3131:66:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3438,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10364,
                      "src": "3131:98:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 3442,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3131:121:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3106:146:19"
                },
                {
                  "assignments": [
                    3445
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3445,
                      "mutability": "mutable",
                      "name": "poolstake",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3548,
                      "src": "3256:17:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3444,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3256:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3452,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3450,
                        "name": "WORKERPOOL_STAKE_RATIO",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 210,
                        "src": "3332:22:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3446,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3423,
                            "src": "3276:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3447,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "3276:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3448,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "3276:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "percentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10543,
                      "src": "3276:55:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 3451,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3276:79:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3256:99:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3454,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3423,
                          "src": "3393:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 3455,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requester",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 303,
                        "src": "3393:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3456,
                        "name": "requesterstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3429,
                        "src": "3409:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3457,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3417,
                        "src": "3425:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3453,
                      "name": "seize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3259,
                      "src": "3387:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3458,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3387:46:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3459,
                  "nodeType": "ExpressionStatement",
                  "src": "3387:46:19"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3464,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3460,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3423,
                          "src": "3458:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 3461,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "app",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 291,
                        "src": "3458:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 3462,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 288,
                      "src": "3458:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3463,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3475:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3458:18:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3476,
                  "nodeType": "IfStatement",
                  "src": "3454:83:19",
                  "trueBody": {
                    "id": 3475,
                    "nodeType": "Block",
                    "src": "3480:57:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3466,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3423,
                                  "src": "3492:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                  }
                                },
                                "id": 3467,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "app",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 291,
                                "src": "3492:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_storage",
                                  "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                }
                              },
                              "id": 3468,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 286,
                              "src": "3492:14:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3469,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3423,
                                  "src": "3508:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                  }
                                },
                                "id": 3470,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "app",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 291,
                                "src": "3508:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_storage",
                                  "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                }
                              },
                              "id": 3471,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "price",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 288,
                              "src": "3508:14:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3472,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3417,
                              "src": "3524:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3465,
                            "name": "reward",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3232,
                            "src": "3485:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                              "typeString": "function (address,uint256,bytes32)"
                            }
                          },
                          "id": 3473,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3485:47:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3474,
                        "nodeType": "ExpressionStatement",
                        "src": "3485:47:19"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 3490,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3481,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3477,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3423,
                            "src": "3561:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3478,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "dataset",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 293,
                          "src": "3561:12:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3479,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "3561:18:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3480,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3582:1:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "3561:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 3489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3482,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3423,
                            "src": "3587:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3483,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "dataset",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 293,
                          "src": "3587:12:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3484,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "pointer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 284,
                        "src": "3587:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3487,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3619:1:19",
                            "subdenomination": null,
                            "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": 3486,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3611:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 3485,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "3611:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 3488,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3611:10:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "src": "3587:34:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3561:60:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3502,
                  "nodeType": "IfStatement",
                  "src": "3557:133:19",
                  "trueBody": {
                    "id": 3501,
                    "nodeType": "Block",
                    "src": "3625:65:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3492,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3423,
                                  "src": "3637:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                  }
                                },
                                "id": 3493,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "dataset",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 293,
                                "src": "3637:12:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_storage",
                                  "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                }
                              },
                              "id": 3494,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 286,
                              "src": "3637:18:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3495,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3423,
                                  "src": "3657:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                  }
                                },
                                "id": 3496,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "dataset",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 293,
                                "src": "3657:12:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_storage",
                                  "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                }
                              },
                              "id": 3497,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "price",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 288,
                              "src": "3657:18:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3498,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3417,
                              "src": "3677:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3491,
                            "name": "reward",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3232,
                            "src": "3630:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                              "typeString": "function (address,uint256,bytes32)"
                            }
                          },
                          "id": 3499,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3630:55:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3500,
                        "nodeType": "ExpressionStatement",
                        "src": "3630:55:19"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3504,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3423,
                            "src": "3723:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3505,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "3723:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3506,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 286,
                        "src": "3723:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3507,
                        "name": "poolstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3445,
                        "src": "3746:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3503,
                      "name": "unlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3325,
                      "src": "3716:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3716:40:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3509,
                  "nodeType": "ExpressionStatement",
                  "src": "3716:40:19"
                },
                {
                  "assignments": [
                    3511
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3511,
                      "mutability": "mutable",
                      "name": "kitty",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3548,
                      "src": "3853:13:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3510,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3853:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3515,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3512,
                      "name": "m_frozens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 192,
                      "src": "3869:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 3514,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3513,
                      "name": "KITTY_ADDRESS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 219,
                      "src": "3879:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3869:24:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3853:40:19"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3518,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3516,
                      "name": "kitty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3511,
                      "src": "3901:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3517,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3909:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3901:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3547,
                  "nodeType": "IfStatement",
                  "src": "3897:307:19",
                  "trueBody": {
                    "id": 3546,
                    "nodeType": "Block",
                    "src": "3914:290:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3530,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 3519,
                            "name": "kitty",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3511,
                            "src": "3919:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3528,
                                "name": "kitty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3511,
                                "src": "4050:5:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3525,
                                    "name": "KITTY_MIN",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 216,
                                    "src": "3997:9:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 3522,
                                        "name": "KITTY_RATIO",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 213,
                                        "src": "3956:11:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 3520,
                                        "name": "kitty",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3511,
                                        "src": "3927:5:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 3521,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "percentage",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 10543,
                                      "src": "3927:28:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                      }
                                    },
                                    "id": 3523,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "3927:41:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 3524,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "max",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10487,
                                  "src": "3927:69:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 3526,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3927:80:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 3527,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "min",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10505,
                              "src": "3927:122:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 3529,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3927:129:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3919:137:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3531,
                        "nodeType": "ExpressionStatement",
                        "src": "3919:137:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3533,
                              "name": "KITTY_ADDRESS",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 219,
                              "src": "4111:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3534,
                              "name": "kitty",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3511,
                              "src": "4134:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3535,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3417,
                              "src": "4141:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3532,
                            "name": "seize",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3259,
                            "src": "4104:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                              "typeString": "function (address,uint256,bytes32)"
                            }
                          },
                          "id": 3536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4104:45:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3537,
                        "nodeType": "ExpressionStatement",
                        "src": "4104:45:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3539,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3423,
                                  "src": "4161:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                  }
                                },
                                "id": 3540,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "workerpool",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 295,
                                "src": "4161:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_storage",
                                  "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                }
                              },
                              "id": 3541,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 286,
                              "src": "4161:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3542,
                              "name": "kitty",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3511,
                              "src": "4184:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3543,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3417,
                              "src": "4191:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3538,
                            "name": "reward",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3232,
                            "src": "4154:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                              "typeString": "function (address,uint256,bytes32)"
                            }
                          },
                          "id": 3544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4154:45:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3545,
                        "nodeType": "ExpressionStatement",
                        "src": "4154:45:19"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 3549,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "successWork",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3418,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3415,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3549,
                  "src": "3000:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3414,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3000:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3417,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3549,
                  "src": "3017:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3416,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3017:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2999:34:19"
            },
            "returnParameters": {
              "id": 3419,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3045:0:19"
            },
            "scope": 6368,
            "src": "2979:1228:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3614,
              "nodeType": "Block",
              "src": "4275:567:19",
              "statements": [
                {
                  "assignments": [
                    3559
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3559,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3614,
                      "src": "4279:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3558,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "4279:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3563,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3560,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "4315:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 3562,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3561,
                      "name": "_dealid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3551,
                      "src": "4323:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4315:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4279:52:19"
                },
                {
                  "assignments": [
                    3565
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3565,
                      "mutability": "mutable",
                      "name": "requesterstake",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3614,
                      "src": "4336:22:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3564,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4336:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3579,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3575,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3559,
                            "src": "4460:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3576,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "4460:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3577,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "4460:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3570,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3559,
                                "src": "4408:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                }
                              },
                              "id": 3571,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "dataset",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 293,
                              "src": "4408:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Resource_$289_storage",
                                "typeString": "struct IexecLibCore_v5.Resource storage ref"
                              }
                            },
                            "id": 3572,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "price",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 288,
                            "src": "4408:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3566,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3559,
                                "src": "4361:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                }
                              },
                              "id": 3567,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "app",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 291,
                              "src": "4361:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Resource_$289_storage",
                                "typeString": "struct IexecLibCore_v5.Resource storage ref"
                              }
                            },
                            "id": 3568,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "price",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 288,
                            "src": "4361:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3569,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "add",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10364,
                          "src": "4361:46:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 3573,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4361:66:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3574,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10364,
                      "src": "4361:98:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 3578,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4361:121:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4336:146:19"
                },
                {
                  "assignments": [
                    3581
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3581,
                      "mutability": "mutable",
                      "name": "poolstake",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3614,
                      "src": "4486:17:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3580,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4486:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3588,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3586,
                        "name": "WORKERPOOL_STAKE_RATIO",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 210,
                        "src": "4562:22:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3582,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3559,
                            "src": "4506:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3583,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "4506:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3584,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "4506:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3585,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "percentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10543,
                      "src": "4506:55:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 3587,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4506:79:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4486:99:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3590,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3559,
                          "src": "4597:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 3591,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requester",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 303,
                        "src": "4597:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3592,
                        "name": "requesterstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3565,
                        "src": "4620:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3589,
                      "name": "unlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3325,
                      "src": "4590:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4590:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3594,
                  "nodeType": "ExpressionStatement",
                  "src": "4590:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3596,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3559,
                            "src": "4650:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3597,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "4650:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3598,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 286,
                        "src": "4650:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3599,
                        "name": "poolstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3581,
                        "src": "4673:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3600,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3553,
                        "src": "4684:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3595,
                      "name": "seize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3259,
                      "src": "4643:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3601,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4643:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3602,
                  "nodeType": "ExpressionStatement",
                  "src": "4643:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3604,
                        "name": "KITTY_ADDRESS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 219,
                        "src": "4703:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3605,
                        "name": "poolstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3581,
                        "src": "4726:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3606,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3553,
                        "src": "4737:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3603,
                      "name": "reward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3232,
                      "src": "4696:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3607,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4696:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3608,
                  "nodeType": "ExpressionStatement",
                  "src": "4696:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3610,
                        "name": "KITTY_ADDRESS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 219,
                        "src": "4776:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3611,
                        "name": "poolstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3581,
                        "src": "4799:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3609,
                      "name": "lock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3292,
                      "src": "4769:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3612,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4769:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3613,
                  "nodeType": "ExpressionStatement",
                  "src": "4769:49:19"
                }
              ]
            },
            "documentation": null,
            "id": 3615,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "failedWork",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3554,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3551,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3615,
                  "src": "4230:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3550,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4230:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3553,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3615,
                  "src": "4247:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3552,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4247:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4229:34:19"
            },
            "returnParameters": {
              "id": 3555,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4275:0:19"
            },
            "scope": 6368,
            "src": "4210:632:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              7582
            ],
            "body": {
              "id": 3634,
              "nodeType": "Block",
              "src": "5206:60:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3629,
                        "name": "_identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3618,
                        "src": "5233:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3630,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3620,
                        "src": "5244:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3631,
                        "name": "_signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3622,
                        "src": "5251:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 3628,
                      "name": "_checkSignature",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6674,
                        6757
                      ],
                      "referencedDeclaration": 6674,
                      "src": "5217:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                        "typeString": "function (address,bytes32,bytes memory) view returns (bool)"
                      }
                    },
                    "id": 3632,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5217:45:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3627,
                  "id": 3633,
                  "nodeType": "Return",
                  "src": "5210:52:19"
                }
              ]
            },
            "documentation": {
              "id": 3616,
              "nodeType": "StructuredDocumentation",
              "src": "4845:233:19",
              "text": "*************************************************************************\n                          ODB order signature                           ***************************************************************************"
            },
            "functionSelector": "01751998",
            "id": 3635,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "verifySignature",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3624,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5181:8:19"
            },
            "parameters": {
              "id": 3623,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3618,
                  "mutability": "mutable",
                  "name": "_identity",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3635,
                  "src": "5105:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3617,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5105:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3620,
                  "mutability": "mutable",
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3635,
                  "src": "5124:13:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3619,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5124:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3622,
                  "mutability": "mutable",
                  "name": "_signature",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3635,
                  "src": "5139:25:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3621,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5139:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5104:61:19"
            },
            "returnParameters": {
              "id": 3627,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3626,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3635,
                  "src": "5199:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3625,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5199:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5198:6:19"
            },
            "scope": 6368,
            "src": "5080:186:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7591
            ],
            "body": {
              "id": 3650,
              "nodeType": "Block",
              "src": "5371:51:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3646,
                        "name": "_identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3637,
                        "src": "5401:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3647,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3639,
                        "src": "5412:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3645,
                      "name": "_checkPresignature",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6621,
                      "src": "5382:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (address,bytes32) view returns (bool)"
                      }
                    },
                    "id": 3648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5382:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3644,
                  "id": 3649,
                  "nodeType": "Return",
                  "src": "5375:43:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "c87b582a",
            "id": 3651,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "verifyPresignature",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3641,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5346:8:19"
            },
            "parameters": {
              "id": 3640,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3637,
                  "mutability": "mutable",
                  "name": "_identity",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3651,
                  "src": "5297:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3636,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5297:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3639,
                  "mutability": "mutable",
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3651,
                  "src": "5316:13:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3638,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5316:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5296:34:19"
            },
            "returnParameters": {
              "id": 3644,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3643,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3651,
                  "src": "5364:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3642,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5364:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5363:6:19"
            },
            "scope": 6368,
            "src": "5269:153:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7602
            ],
            "body": {
              "id": 3669,
              "nodeType": "Block",
              "src": "5565:74:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3664,
                        "name": "_identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3653,
                        "src": "5606:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3665,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3655,
                        "src": "5617:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3666,
                        "name": "_signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3657,
                        "src": "5624:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 3663,
                      "name": "_checkPresignatureOrSignature",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6780,
                        6805
                      ],
                      "referencedDeclaration": 6780,
                      "src": "5576:29:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                        "typeString": "function (address,bytes32,bytes memory) view returns (bool)"
                      }
                    },
                    "id": 3667,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5576:59:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3662,
                  "id": 3668,
                  "nodeType": "Return",
                  "src": "5569:66:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "bf36994e",
            "id": 3670,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "verifyPresignatureOrSignature",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3659,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5540:8:19"
            },
            "parameters": {
              "id": 3658,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3653,
                  "mutability": "mutable",
                  "name": "_identity",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3670,
                  "src": "5464:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3652,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5464:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3655,
                  "mutability": "mutable",
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3670,
                  "src": "5483:13:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3654,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5483:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3657,
                  "mutability": "mutable",
                  "name": "_signature",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3670,
                  "src": "5498:25:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3656,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5498:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5463:61:19"
            },
            "returnParameters": {
              "id": 3662,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3661,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3670,
                  "src": "5558:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3660,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5558:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5557:6:19"
            },
            "scope": 6368,
            "src": "5425:214:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7615
            ],
            "body": {
              "id": 4577,
              "nodeType": "Block",
              "src": "6189:8566:19",
              "statements": [
                {
                  "assignments": [
                    3686
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3686,
                      "mutability": "mutable",
                      "name": "tag",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4577,
                      "src": "6290:11:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3685,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "6290:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3695,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 3694,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 3691,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3687,
                          "name": "_apporder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3673,
                          "src": "6304:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                            "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                          }
                        },
                        "id": 3688,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "tag",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 430,
                        "src": "6304:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "|",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3689,
                          "name": "_datasetorder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3675,
                          "src": "6320:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                            "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                          }
                        },
                        "id": 3690,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "tag",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 449,
                        "src": "6320:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "6304:33:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "|",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3692,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "6340:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 3693,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "tag",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 501,
                      "src": "6340:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "6304:53:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6290:67:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3701,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3697,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6369:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3698,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "category",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 503,
                          "src": "6369:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3699,
                            "name": "_workerpoolorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3677,
                            "src": "6405:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                            }
                          },
                          "id": 3700,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "category",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 470,
                          "src": "6405:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6369:61:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783030",
                        "id": 3702,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6439:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3507d68335c507d7966f377934c4d42e7aa51aab903a61b104ae7e1ebe6f2b08",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x00\""
                        },
                        "value": "iExecV5-matchOrders-0x00"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3507d68335c507d7966f377934c4d42e7aa51aab903a61b104ae7e1ebe6f2b08",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x00\""
                        }
                      ],
                      "id": 3696,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6361:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3703,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6361:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3704,
                  "nodeType": "ExpressionStatement",
                  "src": "6361:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3710,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3706,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6478:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3707,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "category",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 503,
                          "src": "6478:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3708,
                            "name": "m_categories",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 261,
                            "src": "6514:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Category_$282_storage_$dyn_storage",
                              "typeString": "struct IexecLibCore_v5.Category storage ref[] storage ref"
                            }
                          },
                          "id": 3709,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6514:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6478:55:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783031",
                        "id": 3711,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6548:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_349a9b42be2f807208c237eb1033ac4c73ee8d78db4a4686b5f52f0daf92e0ec",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x01\""
                        },
                        "value": "iExecV5-matchOrders-0x01"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_349a9b42be2f807208c237eb1033ac4c73ee8d78db4a4686b5f52f0daf92e0ec",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x01\""
                        }
                      ],
                      "id": 3705,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6470:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6470:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3713,
                  "nodeType": "ExpressionStatement",
                  "src": "6470:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3719,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3715,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6587:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3716,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "trust",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 505,
                          "src": "6587:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3717,
                            "name": "_workerpoolorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3677,
                            "src": "6623:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                            }
                          },
                          "id": 3718,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "trust",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 472,
                          "src": "6623:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6587:58:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783032",
                        "id": 3720,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6657:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6c2077ac7e3f2f12a0a178ea638737a15bdcdcbd742967ee2eaeff1c1031a9c9",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x02\""
                        },
                        "value": "iExecV5-matchOrders-0x02"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6c2077ac7e3f2f12a0a178ea638737a15bdcdcbd742967ee2eaeff1c1031a9c9",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x02\""
                        }
                      ],
                      "id": 3714,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6579:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3721,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6579:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3722,
                  "nodeType": "ExpressionStatement",
                  "src": "6579:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3724,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6696:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3725,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "appmaxprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 487,
                          "src": "6696:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3726,
                            "name": "_apporder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3673,
                            "src": "6732:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                            }
                          },
                          "id": 3727,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "appprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 426,
                          "src": "6732:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6696:54:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783033",
                        "id": 3729,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6766:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b6ab12182cde99a5986448052a3d9d0202ee4be9d59c003844f3c32c8eb23042",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x03\""
                        },
                        "value": "iExecV5-matchOrders-0x03"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b6ab12182cde99a5986448052a3d9d0202ee4be9d59c003844f3c32c8eb23042",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x03\""
                        }
                      ],
                      "id": 3723,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6688:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6688:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3731,
                  "nodeType": "ExpressionStatement",
                  "src": "6688:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3737,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3733,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6805:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3734,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "datasetmaxprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 491,
                          "src": "6805:29:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3735,
                            "name": "_datasetorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3675,
                            "src": "6841:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                            }
                          },
                          "id": 3736,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "datasetprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 445,
                          "src": "6841:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6805:62:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783034",
                        "id": 3738,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6875:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_51536a989a45f02e7aa2c2eb11135038b3ee2860412e0182dbb18cc5f3ac38d1",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x04\""
                        },
                        "value": "iExecV5-matchOrders-0x04"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_51536a989a45f02e7aa2c2eb11135038b3ee2860412e0182dbb18cc5f3ac38d1",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x04\""
                        }
                      ],
                      "id": 3732,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6797:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3739,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6797:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3740,
                  "nodeType": "ExpressionStatement",
                  "src": "6797:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3746,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3742,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6914:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3743,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpoolmaxprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 495,
                          "src": "6914:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3744,
                            "name": "_workerpoolorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3677,
                            "src": "6950:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                            }
                          },
                          "id": 3745,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpoolprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 464,
                          "src": "6950:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6914:68:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783035",
                        "id": 3747,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6984:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_28a5e93603e56ac687da40804cb7efbce727bbb47bbda7cb1fb5909a6da26f6a",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x05\""
                        },
                        "value": "iExecV5-matchOrders-0x05"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_28a5e93603e56ac687da40804cb7efbce727bbb47bbda7cb1fb5909a6da26f6a",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x05\""
                        }
                      ],
                      "id": 3741,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6906:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3748,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6906:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3749,
                  "nodeType": "ExpressionStatement",
                  "src": "6906:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 3757,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 3755,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3751,
                            "name": "tag",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3686,
                            "src": "7023:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 3754,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "~",
                            "prefix": true,
                            "src": "7029:21:19",
                            "subExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3752,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "7030:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3753,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "tag",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 468,
                              "src": "7030:20:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "7023:27:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 3756,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7059:3:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        },
                        "src": "7023:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783036",
                        "id": 3758,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7093:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_603c3a691c27e109c2df65d26af5f8a5e8d0e2d790fcdfbfdaf504d07a8aa18a",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x06\""
                        },
                        "value": "iExecV5-matchOrders-0x06"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_603c3a691c27e109c2df65d26af5f8a5e8d0e2d790fcdfbfdaf504d07a8aa18a",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x06\""
                        }
                      ],
                      "id": 3750,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7015:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3759,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7015:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3760,
                  "nodeType": "ExpressionStatement",
                  "src": "7015:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes1",
                          "typeString": "bytes1"
                        },
                        "id": 3772,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          },
                          "id": 3770,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 3765,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 3762,
                                    "name": "tag",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3686,
                                    "src": "7133:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "^",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 3763,
                                      "name": "_apporder",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3673,
                                      "src": "7139:9:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                        "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                      }
                                    },
                                    "id": 3764,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "tag",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 430,
                                    "src": "7139:13:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "7133:19:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "id": 3766,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "7132:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 3768,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "3331",
                              "id": 3767,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7154:2:19",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31_by_1",
                                "typeString": "int_const 31"
                              },
                              "value": "31"
                            },
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7132:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783031",
                            "id": 3769,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7160:4:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "0x01"
                          },
                          "src": "7132:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 3771,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7168:3:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        },
                        "src": "7132:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783037",
                        "id": 3773,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7202:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2a08ef796bac294c72f558abcc70f50507b0cd004c1c44be09868bd731300b71",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x07\""
                        },
                        "value": "iExecV5-matchOrders-0x07"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_2a08ef796bac294c72f558abcc70f50507b0cd004c1c44be09868bd731300b71",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x07\""
                        }
                      ],
                      "id": 3761,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7124:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3774,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7124:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3775,
                  "nodeType": "ExpressionStatement",
                  "src": "7124:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3781,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3777,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "7279:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3778,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "app",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 485,
                          "src": "7279:17:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3779,
                            "name": "_apporder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3673,
                            "src": "7304:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                            }
                          },
                          "id": 3780,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "app",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 424,
                          "src": "7304:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "7279:38:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783130",
                        "id": 3782,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7433:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b429eab07e7befe09d82f236a7beac1472d7d28b91fc1926bc399a44e955f656",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x10\""
                        },
                        "value": "iExecV5-matchOrders-0x10"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b429eab07e7befe09d82f236a7beac1472d7d28b91fc1926bc399a44e955f656",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x10\""
                        }
                      ],
                      "id": 3776,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7271:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7271:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3784,
                  "nodeType": "ExpressionStatement",
                  "src": "7271:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3790,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3786,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "7472:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3787,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "dataset",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 489,
                          "src": "7472:21:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3788,
                            "name": "_datasetorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3675,
                            "src": "7497:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                            }
                          },
                          "id": 3789,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "dataset",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 443,
                          "src": "7497:21:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "7472:46:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783131",
                        "id": 3791,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7626:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_10af25a6975775551a34346555fa1b067b7d33d9602bab316c328989d6536d0b",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x11\""
                        },
                        "value": "iExecV5-matchOrders-0x11"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_10af25a6975775551a34346555fa1b067b7d33d9602bab316c328989d6536d0b",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x11\""
                        }
                      ],
                      "id": 3785,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7464:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7464:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3793,
                  "nodeType": "ExpressionStatement",
                  "src": "7464:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3809,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3801,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3795,
                              "name": "_requestorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3679,
                              "src": "7665:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                              }
                            },
                            "id": 3796,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpool",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 493,
                            "src": "7665:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3799,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7711:1:19",
                                "subdenomination": null,
                                "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": 3798,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7703:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3797,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "7703:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3800,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7703:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "7665:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3803,
                                "name": "_requestorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3679,
                                "src": "7732:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                                }
                              },
                              "id": 3804,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 493,
                              "src": "7732:24:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3805,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "7768:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3806,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 462,
                              "src": "7768:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3807,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "7797:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3802,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "7717:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3808,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7717:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7665:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783132",
                        "id": 3810,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7819:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dd250873be6ce6bb63186d7a4a3f2a0a81bf410f53c7574e969fc1afbe7bc9e7",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x12\""
                        },
                        "value": "iExecV5-matchOrders-0x12"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dd250873be6ce6bb63186d7a4a3f2a0a81bf410f53c7574e969fc1afbe7bc9e7",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x12\""
                        }
                      ],
                      "id": 3794,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7657:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3811,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7657:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3812,
                  "nodeType": "ExpressionStatement",
                  "src": "7657:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3828,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3820,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3814,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "7902:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 3815,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "datasetrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 432,
                            "src": "7902:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3818,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7948:1:19",
                                "subdenomination": null,
                                "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": 3817,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7940:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3816,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "7940:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3819,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7940:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "7902:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3822,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "7969:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 3823,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "datasetrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 432,
                              "src": "7969:25:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3824,
                                "name": "_datasetorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3675,
                                "src": "8005:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                }
                              },
                              "id": 3825,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "dataset",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 443,
                              "src": "8005:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3826,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8034:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3821,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "7954:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3827,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7954:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7902:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783133",
                        "id": 3829,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8056:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_271ce0a5615ce826ed8710f548a45e435717973216632a6fa50ef6883c72eab7",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x13\""
                        },
                        "value": "iExecV5-matchOrders-0x13"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_271ce0a5615ce826ed8710f548a45e435717973216632a6fa50ef6883c72eab7",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x13\""
                        }
                      ],
                      "id": 3813,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7894:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3830,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7894:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3831,
                  "nodeType": "ExpressionStatement",
                  "src": "7894:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3847,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3839,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3833,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "8095:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 3834,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpoolrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 434,
                            "src": "8095:28:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3837,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8141:1:19",
                                "subdenomination": null,
                                "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": 3836,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8133:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3835,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "8133:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3838,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8133:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "8095:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3841,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "8162:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 3842,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpoolrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 434,
                              "src": "8162:28:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3843,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "8198:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3844,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 462,
                              "src": "8198:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3845,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8227:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3840,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "8147:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3846,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8147:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8095:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783134",
                        "id": 3848,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8249:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_83f4f59b03aa94fb6fb6445cd0444930aef3f89e7af52c612711d6852eb67ea4",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x14\""
                        },
                        "value": "iExecV5-matchOrders-0x14"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_83f4f59b03aa94fb6fb6445cd0444930aef3f89e7af52c612711d6852eb67ea4",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x14\""
                        }
                      ],
                      "id": 3832,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8087:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3849,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8087:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3850,
                  "nodeType": "ExpressionStatement",
                  "src": "8087:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3866,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3858,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3852,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "8288:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 3853,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requesterrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 436,
                            "src": "8288:27:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3856,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8334:1:19",
                                "subdenomination": null,
                                "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": 3855,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8326:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3854,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "8326:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3857,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8326:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "8288:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3860,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "8355:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 3861,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requesterrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 436,
                              "src": "8355:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3862,
                                "name": "_requestorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3679,
                                "src": "8391:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                                }
                              },
                              "id": 3863,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requester",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 497,
                              "src": "8391:23:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3864,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8420:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3859,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "8340:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8340:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8288:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783135",
                        "id": 3867,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8442:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d04f91fbdc69ad7e24fb6730e584438d54f220f45d6a8c334b31d63a9b02de92",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x15\""
                        },
                        "value": "iExecV5-matchOrders-0x15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d04f91fbdc69ad7e24fb6730e584438d54f220f45d6a8c334b31d63a9b02de92",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x15\""
                        }
                      ],
                      "id": 3851,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8280:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3868,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8280:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3869,
                  "nodeType": "ExpressionStatement",
                  "src": "8280:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3885,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3877,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3871,
                              "name": "_datasetorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3675,
                              "src": "8481:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                              }
                            },
                            "id": 3872,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "apprestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 451,
                            "src": "8481:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3875,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8527:1:19",
                                "subdenomination": null,
                                "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": 3874,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8519:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3873,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "8519:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3876,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8519:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "8481:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3879,
                                "name": "_datasetorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3675,
                                "src": "8548:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                }
                              },
                              "id": 3880,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "apprestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 451,
                              "src": "8548:25:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3881,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "8584:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 3882,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "app",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 424,
                              "src": "8584:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3883,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8613:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3878,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "8533:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3884,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8533:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8481:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783136",
                        "id": 3886,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8635:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_87156354f38f211fdb36d0bfb76429daa1cf70e3ee9b048e30ef7ab138c96876",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x16\""
                        },
                        "value": "iExecV5-matchOrders-0x16"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_87156354f38f211fdb36d0bfb76429daa1cf70e3ee9b048e30ef7ab138c96876",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x16\""
                        }
                      ],
                      "id": 3870,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8473:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3887,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8473:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3888,
                  "nodeType": "ExpressionStatement",
                  "src": "8473:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3904,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3896,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3890,
                              "name": "_datasetorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3675,
                              "src": "8674:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                              }
                            },
                            "id": 3891,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpoolrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 453,
                            "src": "8674:32:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3894,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8720:1:19",
                                "subdenomination": null,
                                "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": 3893,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8712:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3892,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "8712:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3895,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8712:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "8674:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3898,
                                "name": "_datasetorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3675,
                                "src": "8741:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                }
                              },
                              "id": 3899,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpoolrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 453,
                              "src": "8741:32:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3900,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "8777:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3901,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 462,
                              "src": "8777:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3902,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8806:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3897,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "8726:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3903,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8726:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8674:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783137",
                        "id": 3905,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8828:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_fb6463f185af90bfd3c4a7345623c3ed5253e0160081699804962ae883325128",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x17\""
                        },
                        "value": "iExecV5-matchOrders-0x17"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_fb6463f185af90bfd3c4a7345623c3ed5253e0160081699804962ae883325128",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x17\""
                        }
                      ],
                      "id": 3889,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8666:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3906,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8666:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3907,
                  "nodeType": "ExpressionStatement",
                  "src": "8666:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3923,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3915,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3909,
                              "name": "_datasetorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3675,
                              "src": "8867:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                              }
                            },
                            "id": 3910,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requesterrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 455,
                            "src": "8867:31:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3913,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8913:1:19",
                                "subdenomination": null,
                                "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": 3912,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8905:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3911,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "8905:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3914,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8905:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "8867:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3917,
                                "name": "_datasetorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3675,
                                "src": "8934:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                }
                              },
                              "id": 3918,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requesterrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 455,
                              "src": "8934:31:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3919,
                                "name": "_requestorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3679,
                                "src": "8970:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                                }
                              },
                              "id": 3920,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requester",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 497,
                              "src": "8970:23:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3921,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8999:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3916,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "8919:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3922,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8919:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8867:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783138",
                        "id": 3924,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9021:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8bdb94718afb88bffbac36e694ef5a83b932f3ee9583b6c4b981d56a50f58922",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x18\""
                        },
                        "value": "iExecV5-matchOrders-0x18"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8bdb94718afb88bffbac36e694ef5a83b932f3ee9583b6c4b981d56a50f58922",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x18\""
                        }
                      ],
                      "id": 3908,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8859:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8859:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3926,
                  "nodeType": "ExpressionStatement",
                  "src": "8859:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3942,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3928,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "9060:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 3929,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "apprestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 474,
                            "src": "9060:28:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3932,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9106:1:19",
                                "subdenomination": null,
                                "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": 3931,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9098:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3930,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "9098:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3933,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9098:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "9060:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3936,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "9127:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3937,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "apprestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 474,
                              "src": "9127:28:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3938,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "9163:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 3939,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "app",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 424,
                              "src": "9163:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3940,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "9192:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3935,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "9112:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3941,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9112:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "9060:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783139",
                        "id": 3943,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9214:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0247d4bd87a60f3c2e3bd36c23e0d0a411b62a362435dd23d8900e180890f9d8",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x19\""
                        },
                        "value": "iExecV5-matchOrders-0x19"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0247d4bd87a60f3c2e3bd36c23e0d0a411b62a362435dd23d8900e180890f9d8",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x19\""
                        }
                      ],
                      "id": 3927,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "9052:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9052:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3945,
                  "nodeType": "ExpressionStatement",
                  "src": "9052:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3961,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3953,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3947,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "9253:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 3948,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "datasetrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 476,
                            "src": "9253:32:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3951,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9299:1:19",
                                "subdenomination": null,
                                "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": 3950,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9291:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3949,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "9291:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3952,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9291:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "9253:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3955,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "9320:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3956,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "datasetrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 476,
                              "src": "9320:32:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3957,
                                "name": "_datasetorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3675,
                                "src": "9356:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                }
                              },
                              "id": 3958,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "dataset",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 443,
                              "src": "9356:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3959,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "9385:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3954,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "9305:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3960,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9305:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "9253:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783161",
                        "id": 3962,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9407:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_374ba584c5da1862d940866e7f0ff9d01edcac924bd5fc334c65bf818dc6929c",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x1a\""
                        },
                        "value": "iExecV5-matchOrders-0x1a"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_374ba584c5da1862d940866e7f0ff9d01edcac924bd5fc334c65bf818dc6929c",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x1a\""
                        }
                      ],
                      "id": 3946,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "9245:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9245:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3964,
                  "nodeType": "ExpressionStatement",
                  "src": "9245:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3980,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3972,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3966,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "9446:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 3967,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requesterrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 478,
                            "src": "9446:34:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3970,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9492:1:19",
                                "subdenomination": null,
                                "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": 3969,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9484:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3968,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "9484:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3971,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9484:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "9446:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3974,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "9513:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3975,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requesterrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 478,
                              "src": "9513:34:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3976,
                                "name": "_requestorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3679,
                                "src": "9549:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                                }
                              },
                              "id": 3977,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requester",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 497,
                              "src": "9549:23:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3978,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "9578:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3973,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "9498:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3979,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9498:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "9446:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783162",
                        "id": 3981,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9600:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4ed45d85309e562d1e5c9e3d11630d7a36155bc002696b5ce28477ccf468fa60",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x1b\""
                        },
                        "value": "iExecV5-matchOrders-0x1b"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4ed45d85309e562d1e5c9e3d11630d7a36155bc002696b5ce28477ccf468fa60",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x1b\""
                        }
                      ],
                      "id": 3965,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "9438:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3982,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9438:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3983,
                  "nodeType": "ExpressionStatement",
                  "src": "9438:189:19"
                },
                {
                  "assignments": [
                    3985
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3985,
                      "mutability": "mutable",
                      "name": "ids",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4577,
                      "src": "9675:19:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                        "typeString": "struct Matching"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3984,
                        "name": "Matching",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3183,
                        "src": "9675:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_storage_ptr",
                          "typeString": "struct Matching"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3986,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9675:19:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3987,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "9698:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 3989,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "hasDataset",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3182,
                      "src": "9698:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 3996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3990,
                          "name": "_datasetorder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3675,
                          "src": "9715:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                            "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                          }
                        },
                        "id": 3991,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 443,
                        "src": "9715:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3994,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9748:1:19",
                            "subdenomination": null,
                            "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": 3993,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9740:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 3992,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "9740:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 3995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9740:10:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "src": "9715:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "9698:52:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3998,
                  "nodeType": "ExpressionStatement",
                  "src": "9698:52:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4008,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3999,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "9764:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4001,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "apporderStruct",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3160,
                      "src": "9764:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4003,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "9803:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 4004,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 608,
                            "src": "9803:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_AppOrder_$441_memory_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_AppOrder_$441_memory_ptr_$",
                              "typeString": "function (struct IexecLibOrders_v5.AppOrder memory) pure returns (bytes32)"
                            }
                          },
                          "id": 4005,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9803:16:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4006,
                          "name": "EIP712DOMAIN_SEPARATOR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 224,
                          "src": "9821:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 4002,
                        "name": "_toEthTypedStruct",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6463,
                        "src": "9785:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                          "typeString": "function (bytes32,bytes32) pure returns (bytes memory)"
                        }
                      },
                      "id": 4007,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9785:59:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "9764:80:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "id": 4009,
                  "nodeType": "ExpressionStatement",
                  "src": "9764:80:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4010,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "9848:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4012,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "apporderHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3162,
                      "src": "9848:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4014,
                            "name": "ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3985,
                            "src": "9879:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                              "typeString": "struct Matching memory"
                            }
                          },
                          "id": 4015,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "apporderStruct",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3160,
                          "src": "9879:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 4013,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "9869:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 4016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9869:29:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "9848:50:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4018,
                  "nodeType": "ExpressionStatement",
                  "src": "9848:50:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4028,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4019,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "9902:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4021,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "appOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3164,
                      "src": "9902:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4023,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "9927:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 4024,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "app",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 424,
                              "src": "9927:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 4022,
                            "name": "App",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8137,
                            "src": "9923:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_App_$8137_$",
                              "typeString": "type(contract App)"
                            }
                          },
                          "id": 4025,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9923:18:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_App_$8137",
                            "typeString": "contract App"
                          }
                        },
                        "id": 4026,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8050,
                        "src": "9923:24:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                          "typeString": "function () view external returns (address)"
                        }
                      },
                      "id": 4027,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9923:26:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "9902:47:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4029,
                  "nodeType": "ExpressionStatement",
                  "src": "9902:47:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4033,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "9989:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 4034,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "app",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 424,
                            "src": "9989:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4031,
                            "name": "m_appregistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 170,
                            "src": "9962:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IRegistry_$7780",
                              "typeString": "contract IRegistry"
                            }
                          },
                          "id": 4032,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isRegistered",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7779,
                          "src": "9962:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 4035,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9962:41:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783230",
                        "id": 4036,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10043:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_87a31e8874b04ba9e36927606e9050cbad73ab14601f027368bac64c184e8878",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x20\""
                        },
                        "value": "iExecV5-matchOrders-0x20"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_87a31e8874b04ba9e36927606e9050cbad73ab14601f027368bac64c184e8878",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x20\""
                        }
                      ],
                      "id": 4030,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "9954:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9954:116:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4038,
                  "nodeType": "ExpressionStatement",
                  "src": "9954:116:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4041,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "10112:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4042,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "appOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3164,
                            "src": "10112:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4043,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "10126:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4044,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "apporderStruct",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3160,
                            "src": "10126:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4045,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "10146:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 4046,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sign",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 440,
                            "src": "10146:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 4040,
                          "name": "_checkPresignatureOrSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            6780,
                            6805
                          ],
                          "referencedDeclaration": 6805,
                          "src": "10082:29:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                          }
                        },
                        "id": 4047,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10082:79:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783231",
                        "id": 4048,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10163:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d979440d505335c33529ec0e29aa61d8b77dcf0196d8edaffba15fbfd90ac849",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x21\""
                        },
                        "value": "iExecV5-matchOrders-0x21"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d979440d505335c33529ec0e29aa61d8b77dcf0196d8edaffba15fbfd90ac849",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x21\""
                        }
                      ],
                      "id": 4039,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "10074:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10074:116:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4050,
                  "nodeType": "ExpressionStatement",
                  "src": "10074:116:19"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 4051,
                      "name": "ids",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3985,
                      "src": "10212:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                        "typeString": "struct Matching memory"
                      }
                    },
                    "id": 4052,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "hasDataset",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3182,
                    "src": "10212:14:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4106,
                  "nodeType": "IfStatement",
                  "src": "10208:554:19",
                  "trueBody": {
                    "id": 4105,
                    "nodeType": "Block",
                    "src": "10266:496:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4062,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4053,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "10271:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4055,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "datasetorderStruct",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3166,
                            "src": "10271:22:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4057,
                                    "name": "_datasetorder",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3675,
                                    "src": "10314:13:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                      "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                    }
                                  },
                                  "id": 4058,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "hash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 639,
                                  "src": "10314:18:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_DatasetOrder_$460_memory_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_DatasetOrder_$460_memory_ptr_$",
                                    "typeString": "function (struct IexecLibOrders_v5.DatasetOrder memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 4059,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10314:20:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4060,
                                "name": "EIP712DOMAIN_SEPARATOR",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 224,
                                "src": "10336:22:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 4056,
                              "name": "_toEthTypedStruct",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6463,
                              "src": "10296:17:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function (bytes32,bytes32) pure returns (bytes memory)"
                              }
                            },
                            "id": 4061,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10296:63:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "src": "10271:88:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 4063,
                        "nodeType": "ExpressionStatement",
                        "src": "10271:88:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4071,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4064,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "10364:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4066,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "datasetorderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3168,
                            "src": "10364:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4068,
                                  "name": "ids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3985,
                                  "src": "10399:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                    "typeString": "struct Matching memory"
                                  }
                                },
                                "id": 4069,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "datasetorderStruct",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3166,
                                "src": "10399:22:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 4067,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -8,
                              "src": "10389:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 4070,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10389:33:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "10364:58:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 4072,
                        "nodeType": "ExpressionStatement",
                        "src": "10364:58:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4082,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4073,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "10427:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4075,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "datasetOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3170,
                            "src": "10427:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4077,
                                      "name": "_datasetorder",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3675,
                                      "src": "10460:13:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                        "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                      }
                                    },
                                    "id": 4078,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "dataset",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 443,
                                    "src": "10460:21:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 4076,
                                  "name": "Dataset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8288,
                                  "src": "10452:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Dataset_$8288_$",
                                    "typeString": "type(contract Dataset)"
                                  }
                                },
                                "id": 4079,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10452:30:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Dataset_$8288",
                                  "typeString": "contract Dataset"
                                }
                              },
                              "id": 4080,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 8050,
                              "src": "10452:36:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                "typeString": "function () view external returns (address)"
                              }
                            },
                            "id": 4081,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10452:38:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "10427:63:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 4083,
                        "nodeType": "ExpressionStatement",
                        "src": "10427:63:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4087,
                                    "name": "_datasetorder",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3675,
                                    "src": "10535:13:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                      "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                    }
                                  },
                                  "id": 4088,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "dataset",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 443,
                                  "src": "10535:21:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4085,
                                  "name": "m_datasetregistry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 172,
                                  "src": "10504:17:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IRegistry_$7780",
                                    "typeString": "contract IRegistry"
                                  }
                                },
                                "id": 4086,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "isRegistered",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7779,
                                "src": "10504:30:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                                  "typeString": "function (address) view external returns (bool)"
                                }
                              },
                              "id": 4089,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10504:53:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "694578656356352d6d617463684f72646572732d30783330",
                              "id": 4090,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10597:26:19",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_248335991405d77420780aa4d9180936097ee4d9153fd1ff54056e5d09e9fab2",
                                "typeString": "literal_string \"iExecV5-matchOrders-0x30\""
                              },
                              "value": "iExecV5-matchOrders-0x30"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_248335991405d77420780aa4d9180936097ee4d9153fd1ff54056e5d09e9fab2",
                                "typeString": "literal_string \"iExecV5-matchOrders-0x30\""
                              }
                            ],
                            "id": 4084,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              -18,
                              -18
                            ],
                            "referencedDeclaration": -18,
                            "src": "10496:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 4091,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10496:128:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4092,
                        "nodeType": "ExpressionStatement",
                        "src": "10496:128:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4095,
                                    "name": "ids",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3985,
                                    "src": "10667:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                      "typeString": "struct Matching memory"
                                    }
                                  },
                                  "id": 4096,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "datasetOwner",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3170,
                                  "src": "10667:16:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4097,
                                    "name": "ids",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3985,
                                    "src": "10685:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                      "typeString": "struct Matching memory"
                                    }
                                  },
                                  "id": 4098,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "datasetorderStruct",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3166,
                                  "src": "10685:22:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4099,
                                    "name": "_datasetorder",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3675,
                                    "src": "10709:13:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                      "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                    }
                                  },
                                  "id": 4100,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sign",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 459,
                                  "src": "10709:18:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                ],
                                "id": 4094,
                                "name": "_checkPresignatureOrSignature",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  6780,
                                  6805
                                ],
                                "referencedDeclaration": 6805,
                                "src": "10637:29:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                                  "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                                }
                              },
                              "id": 4101,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10637:91:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "694578656356352d6d617463684f72646572732d30783331",
                              "id": 4102,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10730:26:19",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_0361b427f057d58d1476450e9c11db1ebc3751e144fbf84c1f8309403f778d09",
                                "typeString": "literal_string \"iExecV5-matchOrders-0x31\""
                              },
                              "value": "iExecV5-matchOrders-0x31"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_0361b427f057d58d1476450e9c11db1ebc3751e144fbf84c1f8309403f778d09",
                                "typeString": "literal_string \"iExecV5-matchOrders-0x31\""
                              }
                            ],
                            "id": 4093,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              -18,
                              -18
                            ],
                            "referencedDeclaration": -18,
                            "src": "10629:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 4103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10629:128:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4104,
                        "nodeType": "ExpressionStatement",
                        "src": "10629:128:19"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4116,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4107,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "10782:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4109,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "workerpoolorderStruct",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3172,
                      "src": "10782:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4111,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "10828:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 4112,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 674,
                            "src": "10828:21:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_WorkerpoolOrder_$483_memory_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_WorkerpoolOrder_$483_memory_ptr_$",
                              "typeString": "function (struct IexecLibOrders_v5.WorkerpoolOrder memory) pure returns (bytes32)"
                            }
                          },
                          "id": 4113,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10828:23:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4114,
                          "name": "EIP712DOMAIN_SEPARATOR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 224,
                          "src": "10853:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 4110,
                        "name": "_toEthTypedStruct",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6463,
                        "src": "10810:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                          "typeString": "function (bytes32,bytes32) pure returns (bytes memory)"
                        }
                      },
                      "id": 4115,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10810:66:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "10782:94:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "id": 4117,
                  "nodeType": "ExpressionStatement",
                  "src": "10782:94:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4125,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4118,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "10880:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4120,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "workerpoolorderHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3174,
                      "src": "10880:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4122,
                            "name": "ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3985,
                            "src": "10918:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                              "typeString": "struct Matching memory"
                            }
                          },
                          "id": 4123,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpoolorderStruct",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3172,
                          "src": "10918:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 4121,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "10908:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 4124,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10908:36:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "10880:64:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4126,
                  "nodeType": "ExpressionStatement",
                  "src": "10880:64:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4127,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "10948:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4129,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "workerpoolOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3176,
                      "src": "10948:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4131,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "10987:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 4132,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 462,
                              "src": "10987:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 4130,
                            "name": "Workerpool",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8459,
                            "src": "10976:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Workerpool_$8459_$",
                              "typeString": "type(contract Workerpool)"
                            }
                          },
                          "id": 4133,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10976:39:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Workerpool_$8459",
                            "typeString": "contract Workerpool"
                          }
                        },
                        "id": 4134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8050,
                        "src": "10976:45:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                          "typeString": "function () view external returns (address)"
                        }
                      },
                      "id": 4135,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10976:47:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "10948:75:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4137,
                  "nodeType": "ExpressionStatement",
                  "src": "10948:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4141,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "11070:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 4142,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpool",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 462,
                            "src": "11070:27:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4139,
                            "name": "m_workerpoolregistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 174,
                            "src": "11036:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IRegistry_$7780",
                              "typeString": "contract IRegistry"
                            }
                          },
                          "id": 4140,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isRegistered",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7779,
                          "src": "11036:33:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 4143,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11036:62:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783430",
                        "id": 4144,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11138:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_68b9f774e6537c559babbc1afba0c516d0101735ad4481d99158d211f9bb5102",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x40\""
                        },
                        "value": "iExecV5-matchOrders-0x40"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_68b9f774e6537c559babbc1afba0c516d0101735ad4481d99158d211f9bb5102",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x40\""
                        }
                      ],
                      "id": 4138,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "11028:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4145,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11028:137:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4146,
                  "nodeType": "ExpressionStatement",
                  "src": "11028:137:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4149,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "11207:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4150,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpoolOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3176,
                            "src": "11207:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4151,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "11228:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4152,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpoolorderStruct",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3172,
                            "src": "11228:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4153,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "11255:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 4154,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sign",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 482,
                            "src": "11255:21:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 4148,
                          "name": "_checkPresignatureOrSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            6780,
                            6805
                          ],
                          "referencedDeclaration": 6805,
                          "src": "11177:29:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                          }
                        },
                        "id": 4155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11177:100:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783431",
                        "id": 4156,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11279:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_11665fe3bc6c7efad8eaeee9eb8535182240fda33c3f129bbfe2daee0cd1ab77",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x41\""
                        },
                        "value": "iExecV5-matchOrders-0x41"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_11665fe3bc6c7efad8eaeee9eb8535182240fda33c3f129bbfe2daee0cd1ab77",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x41\""
                        }
                      ],
                      "id": 4147,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "11169:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4157,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11169:137:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4158,
                  "nodeType": "ExpressionStatement",
                  "src": "11169:137:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4168,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4159,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "11324:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4161,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "requestorderStruct",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3178,
                      "src": "11324:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4163,
                              "name": "_requestorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3679,
                              "src": "11367:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                              }
                            },
                            "id": 4164,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 730,
                            "src": "11367:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_RequestOrder_$516_memory_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_RequestOrder_$516_memory_ptr_$",
                              "typeString": "function (struct IexecLibOrders_v5.RequestOrder memory) pure returns (bytes32)"
                            }
                          },
                          "id": 4165,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11367:20:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4166,
                          "name": "EIP712DOMAIN_SEPARATOR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 224,
                          "src": "11389:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 4162,
                        "name": "_toEthTypedStruct",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6463,
                        "src": "11349:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                          "typeString": "function (bytes32,bytes32) pure returns (bytes memory)"
                        }
                      },
                      "id": 4167,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11349:63:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "11324:88:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "id": 4169,
                  "nodeType": "ExpressionStatement",
                  "src": "11324:88:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4170,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "11416:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4172,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "requestorderHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3180,
                      "src": "11416:20:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4174,
                            "name": "ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3985,
                            "src": "11451:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                              "typeString": "struct Matching memory"
                            }
                          },
                          "id": 4175,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "requestorderStruct",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3178,
                          "src": "11451:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 4173,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "11441:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 4176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11441:33:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "11416:58:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4178,
                  "nodeType": "ExpressionStatement",
                  "src": "11416:58:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4181,
                              "name": "_requestorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3679,
                              "src": "11516:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                              }
                            },
                            "id": 4182,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requester",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 497,
                            "src": "11516:23:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4183,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "11541:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4184,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requestorderStruct",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3178,
                            "src": "11541:22:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4185,
                              "name": "_requestorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3679,
                              "src": "11565:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                              }
                            },
                            "id": 4186,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sign",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 515,
                            "src": "11565:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 4180,
                          "name": "_checkPresignatureOrSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            6780,
                            6805
                          ],
                          "referencedDeclaration": 6805,
                          "src": "11486:29:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                          }
                        },
                        "id": 4187,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11486:98:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783530",
                        "id": 4188,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11586:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_68a361fd1b835dd41be1f02038934644cc2fe461b00a8ad3a7224d2e1cdcc213",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x50\""
                        },
                        "value": "iExecV5-matchOrders-0x50"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_68a361fd1b835dd41be1f02038934644cc2fe461b00a8ad3a7224d2e1cdcc213",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x50\""
                        }
                      ],
                      "id": 4179,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "11478:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11478:135:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4190,
                  "nodeType": "ExpressionStatement",
                  "src": "11478:135:19"
                },
                {
                  "assignments": [
                    4192
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4192,
                      "mutability": "mutable",
                      "name": "volume",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4577,
                      "src": "11654:14:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4191,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11654:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4193,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11654:14:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4203,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4194,
                      "name": "volume",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4192,
                      "src": "11672:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4198,
                            "name": "m_consumed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 232,
                            "src": "11737:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4201,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4199,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "11748:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4200,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "apporderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3162,
                            "src": "11748:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11737:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4195,
                            "name": "_apporder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3673,
                            "src": "11709:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                            }
                          },
                          "id": 4196,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "volume",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 428,
                          "src": "11709:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4197,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10389,
                        "src": "11709:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4202,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11709:64:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11672:101:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4204,
                  "nodeType": "ExpressionStatement",
                  "src": "11672:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4221,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4205,
                      "name": "volume",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4192,
                      "src": "11777:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4206,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "11786:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4207,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "hasDataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3182,
                        "src": "11786:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 4219,
                        "name": "volume",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4192,
                        "src": "11882:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 4220,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "11786:102:19",
                      "trueExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4213,
                                  "name": "m_consumed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 232,
                                  "src": "11842:10:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                    "typeString": "mapping(bytes32 => uint256)"
                                  }
                                },
                                "id": 4216,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4214,
                                    "name": "ids",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3985,
                                    "src": "11853:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                      "typeString": "struct Matching memory"
                                    }
                                  },
                                  "id": 4215,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "datasetorderHash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3168,
                                  "src": "11853:20:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "11842:35:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4210,
                                  "name": "_datasetorder",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3675,
                                  "src": "11814:13:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                    "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                  }
                                },
                                "id": 4211,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "volume",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 447,
                                "src": "11814:20:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4212,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10389,
                              "src": "11814:24:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4217,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11814:64:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4208,
                            "name": "volume",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4192,
                            "src": "11803:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4209,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "min",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10505,
                          "src": "11803:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 4218,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11803:76:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11777:111:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4222,
                  "nodeType": "ExpressionStatement",
                  "src": "11777:111:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4235,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4223,
                      "name": "volume",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4192,
                      "src": "11892:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4229,
                                "name": "m_consumed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 232,
                                "src": "11957:10:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                  "typeString": "mapping(bytes32 => uint256)"
                                }
                              },
                              "id": 4232,
                              "indexExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4230,
                                  "name": "ids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3985,
                                  "src": "11968:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                    "typeString": "struct Matching memory"
                                  }
                                },
                                "id": 4231,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "workerpoolorderHash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3174,
                                "src": "11968:23:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11957:35:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4226,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "11929:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 4227,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "volume",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 466,
                              "src": "11929:23:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4228,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sub",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10389,
                            "src": "11929:27:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 4233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11929:64:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 4224,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "11918:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "min",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10505,
                        "src": "11918:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4234,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11918:76:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11892:102:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4236,
                  "nodeType": "ExpressionStatement",
                  "src": "11892:102:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4249,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4237,
                      "name": "volume",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4192,
                      "src": "11998:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4243,
                                "name": "m_consumed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 232,
                                "src": "12063:10:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                  "typeString": "mapping(bytes32 => uint256)"
                                }
                              },
                              "id": 4246,
                              "indexExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4244,
                                  "name": "ids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3985,
                                  "src": "12074:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                    "typeString": "struct Matching memory"
                                  }
                                },
                                "id": 4245,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "requestorderHash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3180,
                                "src": "12074:20:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "12063:35:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4240,
                                "name": "_requestorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3679,
                                "src": "12035:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                                }
                              },
                              "id": 4241,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "volume",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 499,
                              "src": "12035:20:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4242,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sub",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10389,
                            "src": "12035:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 4247,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12035:64:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 4238,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "12024:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4239,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "min",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10505,
                        "src": "12024:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4248,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12024:76:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11998:102:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4250,
                  "nodeType": "ExpressionStatement",
                  "src": "11998:102:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4254,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4252,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "12112:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4253,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12121:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12112:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783630",
                        "id": 4255,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12124:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7d0b10b14c742827d8e27989e6cf7c0ff2ca632c2ab7fdd3df3c24fa415d2ad0",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x60\""
                        },
                        "value": "iExecV5-matchOrders-0x60"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7d0b10b14c742827d8e27989e6cf7c0ff2ca632c2ab7fdd3df3c24fa415d2ad0",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x60\""
                        }
                      ],
                      "id": 4251,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "12104:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4256,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12104:47:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4257,
                  "nodeType": "ExpressionStatement",
                  "src": "12104:47:19"
                },
                {
                  "assignments": [
                    4259
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4259,
                      "mutability": "mutable",
                      "name": "dealid",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4577,
                      "src": "12180:14:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4258,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12180:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4271,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4263,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "12228:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4264,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requestorderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3180,
                            "src": "12228:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4265,
                              "name": "m_consumed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 232,
                              "src": "12279:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 4268,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4266,
                                "name": "ids",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3985,
                                "src": "12290:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                  "typeString": "struct Matching memory"
                                }
                              },
                              "id": 4267,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requestorderHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3180,
                              "src": "12290:20:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12279:32:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4261,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "12207:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 4262,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12207:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 4269,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12207:132:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 4260,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "12197:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12197:143:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12180:160:19"
                },
                {
                  "assignments": [
                    4275
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4275,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4577,
                      "src": "12345:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4274,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "12345:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4279,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4276,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "12381:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 4278,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4277,
                      "name": "dealid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4259,
                      "src": "12389:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12381:15:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12345:51:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4287,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4280,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12400:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4283,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "app",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 291,
                        "src": "12400:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4284,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "pointer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 284,
                      "src": "12400:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4285,
                        "name": "_apporder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3673,
                        "src": "12428:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                        }
                      },
                      "id": 4286,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "app",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 424,
                      "src": "12428:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12400:41:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4288,
                  "nodeType": "ExpressionStatement",
                  "src": "12400:41:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4296,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4289,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12445:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4292,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "app",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 291,
                        "src": "12445:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4293,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 286,
                      "src": "12445:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4294,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "12473:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4295,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "appOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3164,
                      "src": "12473:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12445:40:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4297,
                  "nodeType": "ExpressionStatement",
                  "src": "12445:40:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4305,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4298,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12489:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4301,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "app",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 291,
                        "src": "12489:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4302,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 288,
                      "src": "12489:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4303,
                        "name": "_apporder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3673,
                        "src": "12517:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                        }
                      },
                      "id": 4304,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "appprice",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 426,
                      "src": "12517:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12489:46:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4306,
                  "nodeType": "ExpressionStatement",
                  "src": "12489:46:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4314,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4307,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12539:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4310,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 293,
                        "src": "12539:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4311,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 286,
                      "src": "12539:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4312,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "12567:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4313,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "datasetOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3170,
                      "src": "12567:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12539:44:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4315,
                  "nodeType": "ExpressionStatement",
                  "src": "12539:44:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4323,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4316,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12587:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4319,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 293,
                        "src": "12587:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4320,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "pointer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 284,
                      "src": "12587:20:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4321,
                        "name": "_datasetorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3675,
                        "src": "12615:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                        }
                      },
                      "id": 4322,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dataset",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 443,
                      "src": "12615:21:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12587:49:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4324,
                  "nodeType": "ExpressionStatement",
                  "src": "12587:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4336,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4325,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12640:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4328,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 293,
                        "src": "12640:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4329,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 288,
                      "src": "12640:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4330,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "12668:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4331,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "hasDataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3182,
                        "src": "12668:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4334,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12714:1:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "id": 4335,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "12668:47:19",
                      "trueExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4332,
                          "name": "_datasetorder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3675,
                          "src": "12685:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                            "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                          }
                        },
                        "id": 4333,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "datasetprice",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 445,
                        "src": "12685:26:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12640:75:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4337,
                  "nodeType": "ExpressionStatement",
                  "src": "12640:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4345,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4338,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12719:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4341,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerpool",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 295,
                        "src": "12719:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4342,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "pointer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 284,
                      "src": "12719:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4343,
                        "name": "_workerpoolorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3677,
                        "src": "12747:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                        }
                      },
                      "id": 4344,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "workerpool",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 462,
                      "src": "12747:27:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12719:55:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4346,
                  "nodeType": "ExpressionStatement",
                  "src": "12719:55:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4354,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4347,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12778:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4350,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerpool",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 295,
                        "src": "12778:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4351,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 286,
                      "src": "12778:21:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4352,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "12806:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4353,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "workerpoolOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3176,
                      "src": "12806:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12778:47:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4355,
                  "nodeType": "ExpressionStatement",
                  "src": "12778:47:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4363,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4356,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12829:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4359,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerpool",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 295,
                        "src": "12829:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4360,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 288,
                      "src": "12829:21:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4361,
                        "name": "_workerpoolorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3677,
                        "src": "12857:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                        }
                      },
                      "id": 4362,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "workerpoolprice",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 464,
                      "src": "12857:32:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12829:60:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4364,
                  "nodeType": "ExpressionStatement",
                  "src": "12829:60:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4373,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4365,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "12893:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4367,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "trust",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 297,
                      "src": "12893:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 4371,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12945:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4368,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "12921:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 4369,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "trust",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 505,
                          "src": "12921:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4370,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "max",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10487,
                        "src": "12921:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4372,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12921:26:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12893:54:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4374,
                  "nodeType": "ExpressionStatement",
                  "src": "12893:54:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4380,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4375,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "12951:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4377,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "category",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 299,
                      "src": "12951:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4378,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "12979:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 4379,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "category",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 503,
                      "src": "12979:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12951:50:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4381,
                  "nodeType": "ExpressionStatement",
                  "src": "12951:50:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4386,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4382,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13005:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4384,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "tag",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 301,
                      "src": "13005:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4385,
                      "name": "tag",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3686,
                      "src": "13033:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "13005:31:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4387,
                  "nodeType": "ExpressionStatement",
                  "src": "13005:31:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4393,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4388,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13040:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4390,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "requester",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 303,
                      "src": "13040:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4391,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "13068:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 4392,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "requester",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 497,
                      "src": "13068:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "13040:51:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4394,
                  "nodeType": "ExpressionStatement",
                  "src": "13040:51:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4400,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4395,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13095:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4397,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "beneficiary",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 305,
                      "src": "13095:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4398,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "13123:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 4399,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "beneficiary",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 507,
                      "src": "13123:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "13095:53:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4401,
                  "nodeType": "ExpressionStatement",
                  "src": "13095:53:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4407,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4402,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13152:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4404,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "callback",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 307,
                      "src": "13152:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4405,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "13180:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 4406,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "callback",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 509,
                      "src": "13180:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "13152:50:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4408,
                  "nodeType": "ExpressionStatement",
                  "src": "13152:50:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4414,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4409,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13206:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4411,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "params",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 309,
                      "src": "13206:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4412,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "13234:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 4413,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "params",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 511,
                      "src": "13234:20:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "13206:48:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 4415,
                  "nodeType": "ExpressionStatement",
                  "src": "13206:48:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4420,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4416,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13258:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4418,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 311,
                      "src": "13258:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4419,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -17,
                      "src": "13286:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13258:31:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4421,
                  "nodeType": "ExpressionStatement",
                  "src": "13258:31:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4429,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4422,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13293:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4424,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "botFirst",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 313,
                      "src": "13293:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4425,
                        "name": "m_consumed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "13321:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4428,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4426,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "13332:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4427,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requestorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3180,
                        "src": "13332:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "13321:32:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13293:60:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4430,
                  "nodeType": "ExpressionStatement",
                  "src": "13293:60:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4431,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13357:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4433,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "botSize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 315,
                      "src": "13357:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4434,
                      "name": "volume",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4192,
                      "src": "13385:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13357:34:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4436,
                  "nodeType": "ExpressionStatement",
                  "src": "13357:34:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4437,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13395:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4439,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "workerStake",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 317,
                      "src": "13395:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4444,
                                    "name": "_workerpoolorder",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3677,
                                    "src": "13478:16:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                      "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                    }
                                  },
                                  "id": 4445,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "workerpool",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 462,
                                  "src": "13478:27:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 4443,
                                "name": "Workerpool",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8459,
                                "src": "13467:10:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Workerpool_$8459_$",
                                  "typeString": "type(contract Workerpool)"
                                }
                              },
                              "id": 4446,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13467:39:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Workerpool_$8459",
                                "typeString": "contract Workerpool"
                              }
                            },
                            "id": 4447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "m_workerStakeRatioPolicy",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 8390,
                            "src": "13467:64:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 4448,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13467:66:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4440,
                            "name": "_workerpoolorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3677,
                            "src": "13423:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                            }
                          },
                          "id": 4441,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpoolprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 464,
                          "src": "13423:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4442,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "percentage",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10543,
                        "src": "13423:43:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13423:111:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13395:139:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4451,
                  "nodeType": "ExpressionStatement",
                  "src": "13395:139:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4452,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13538:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4454,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "schedulerRewardRatio",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 319,
                      "src": "13538:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4456,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "13577:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 4457,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 462,
                              "src": "13577:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 4455,
                            "name": "Workerpool",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8459,
                            "src": "13566:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Workerpool_$8459_$",
                              "typeString": "type(contract Workerpool)"
                            }
                          },
                          "id": 4458,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13566:39:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Workerpool_$8459",
                            "typeString": "contract Workerpool"
                          }
                        },
                        "id": 4459,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "m_schedulerRewardRatioPolicy",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8392,
                        "src": "13566:68:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                          "typeString": "function () view external returns (uint256)"
                        }
                      },
                      "id": 4460,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13566:70:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13538:98:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4462,
                  "nodeType": "ExpressionStatement",
                  "src": "13538:98:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4474,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4463,
                        "name": "m_consumed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "13674:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4466,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4464,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "13685:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4465,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "apporderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3162,
                        "src": "13685:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "13674:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4472,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "13769:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4467,
                            "name": "m_consumed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 232,
                            "src": "13712:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4470,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4468,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "13723:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4469,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "apporderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3162,
                            "src": "13723:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13712:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4471,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "13712:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4473,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13712:68:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13674:106:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4475,
                  "nodeType": "ExpressionStatement",
                  "src": "13674:106:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4491,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4476,
                        "name": "m_consumed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "13784:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4479,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4477,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "13795:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4478,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "datasetorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3168,
                        "src": "13795:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "13784:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "condition": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4485,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "13862:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4486,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "hasDataset",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3182,
                            "src": "13862:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4488,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13888:1:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "id": 4489,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "13862:27:19",
                          "trueExpression": {
                            "argumentTypes": null,
                            "id": 4487,
                            "name": "volume",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4192,
                            "src": "13879:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4480,
                            "name": "m_consumed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 232,
                            "src": "13822:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4483,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4481,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "13833:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4482,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "datasetorderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3168,
                            "src": "13833:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13822:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4484,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "13822:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4490,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13822:68:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13784:106:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4492,
                  "nodeType": "ExpressionStatement",
                  "src": "13784:106:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4504,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4493,
                        "name": "m_consumed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "13894:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4496,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4494,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "13905:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4495,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerpoolorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3174,
                        "src": "13905:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "13894:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4502,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "13989:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4497,
                            "name": "m_consumed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 232,
                            "src": "13932:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4500,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4498,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "13943:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4499,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpoolorderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3174,
                            "src": "13943:23:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13932:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4501,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "13932:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4503,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13932:68:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13894:106:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4505,
                  "nodeType": "ExpressionStatement",
                  "src": "13894:106:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4517,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4506,
                        "name": "m_consumed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "14004:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4509,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4507,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "14015:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4508,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requestorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3180,
                        "src": "14015:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "14004:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4515,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "14099:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4510,
                            "name": "m_consumed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 232,
                            "src": "14042:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4513,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4511,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "14053:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4512,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requestorderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3180,
                            "src": "14053:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "14042:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "14042:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4516,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14042:68:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14004:106:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4518,
                  "nodeType": "ExpressionStatement",
                  "src": "14004:106:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4520,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "14146:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4521,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requester",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 303,
                        "src": "14146:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4536,
                            "name": "volume",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4192,
                            "src": "14247:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4531,
                                    "name": "deal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4275,
                                    "src": "14216:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                      "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                    }
                                  },
                                  "id": 4532,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "workerpool",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 295,
                                  "src": "14216:15:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Resource_$289_storage",
                                    "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                  }
                                },
                                "id": 4533,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "price",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 288,
                                "src": "14216:21:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 4526,
                                        "name": "deal",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4275,
                                        "src": "14188:4:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                        }
                                      },
                                      "id": 4527,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "dataset",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 293,
                                      "src": "14188:12:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Resource_$289_storage",
                                        "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                      }
                                    },
                                    "id": 4528,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "price",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 288,
                                    "src": "14188:18:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 4522,
                                        "name": "deal",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4275,
                                        "src": "14165:4:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                        }
                                      },
                                      "id": 4523,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "app",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 291,
                                      "src": "14165:8:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Resource_$289_storage",
                                        "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                      }
                                    },
                                    "id": 4524,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "price",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 288,
                                    "src": "14165:14:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 4525,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "add",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10364,
                                  "src": "14165:22:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 4529,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "14165:42:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4530,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10364,
                              "src": "14165:50:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4534,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14165:73:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4535,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "mul",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10423,
                          "src": "14165:81:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 4537,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14165:89:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4519,
                      "name": "lock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3292,
                      "src": "14137:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 4538,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14137:121:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4539,
                  "nodeType": "ExpressionStatement",
                  "src": "14137:121:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4541,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4275,
                            "src": "14271:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 4542,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "14271:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 4543,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 286,
                        "src": "14271:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4551,
                            "name": "volume",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4192,
                            "src": "14394:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4548,
                                "name": "WORKERPOOL_STAKE_RATIO",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 210,
                                "src": "14334:22:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4544,
                                    "name": "deal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4275,
                                    "src": "14297:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                      "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                    }
                                  },
                                  "id": 4545,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "workerpool",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 295,
                                  "src": "14297:15:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Resource_$289_storage",
                                    "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                  }
                                },
                                "id": 4546,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "price",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 288,
                                "src": "14297:21:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4547,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "percentage",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10543,
                              "src": "14297:36:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4549,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14297:60:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4550,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "mul",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10423,
                          "src": "14297:96:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 4552,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14297:104:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4540,
                      "name": "lock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3292,
                      "src": "14262:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 4553,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14262:194:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4554,
                  "nodeType": "ExpressionStatement",
                  "src": "14262:194:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4556,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4275,
                            "src": "14514:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 4557,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "14514:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 4558,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "pointer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 284,
                        "src": "14514:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4559,
                        "name": "dealid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4259,
                        "src": "14539:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 4555,
                      "name": "SchedulerNotice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7517,
                      "src": "14498:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 4560,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14498:48:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4561,
                  "nodeType": "EmitStatement",
                  "src": "14493:53:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4563,
                        "name": "dealid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4259,
                        "src": "14613:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4564,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "14624:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4565,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "apporderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3162,
                        "src": "14624:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4566,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "14645:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4567,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "datasetorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3168,
                        "src": "14645:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4568,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "14670:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4569,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerpoolorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3174,
                        "src": "14670:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4570,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "14698:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4571,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requestorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3180,
                        "src": "14698:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4572,
                        "name": "volume",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4192,
                        "src": "14723:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4562,
                      "name": "OrdersMatched",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7511,
                      "src": "14595:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,bytes32,bytes32,bytes32,uint256)"
                      }
                    },
                    "id": 4573,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14595:138:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4574,
                  "nodeType": "EmitStatement",
                  "src": "14590:143:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4575,
                    "name": "dealid",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4259,
                    "src": "14745:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3684,
                  "id": 4576,
                  "nodeType": "Return",
                  "src": "14738:13:19"
                }
              ]
            },
            "documentation": {
              "id": 3671,
              "nodeType": "StructuredDocumentation",
              "src": "5642:233:19",
              "text": "*************************************************************************\n                          ODB order matching                            ***************************************************************************"
            },
            "functionSelector": "156194d4",
            "id": 4578,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "matchOrders",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3681,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6161:8:19"
            },
            "parameters": {
              "id": 3680,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3673,
                  "mutability": "mutable",
                  "name": "_apporder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4578,
                  "src": "5924:50:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                    "typeString": "struct IexecLibOrders_v5.AppOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3672,
                    "name": "IexecLibOrders_v5.AppOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 441,
                    "src": "5924:26:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AppOrder_$441_storage_ptr",
                      "typeString": "struct IexecLibOrders_v5.AppOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3675,
                  "mutability": "mutable",
                  "name": "_datasetorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4578,
                  "src": "5978:54:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                    "typeString": "struct IexecLibOrders_v5.DatasetOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3674,
                    "name": "IexecLibOrders_v5.DatasetOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 460,
                    "src": "5978:30:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DatasetOrder_$460_storage_ptr",
                      "typeString": "struct IexecLibOrders_v5.DatasetOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3677,
                  "mutability": "mutable",
                  "name": "_workerpoolorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4578,
                  "src": "6036:57:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                    "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3676,
                    "name": "IexecLibOrders_v5.WorkerpoolOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 483,
                    "src": "6036:33:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_storage_ptr",
                      "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3679,
                  "mutability": "mutable",
                  "name": "_requestorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4578,
                  "src": "6097:54:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                    "typeString": "struct IexecLibOrders_v5.RequestOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3678,
                    "name": "IexecLibOrders_v5.RequestOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 516,
                    "src": "6097:30:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestOrder_$516_storage_ptr",
                      "typeString": "struct IexecLibOrders_v5.RequestOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5920:232:19"
            },
            "returnParameters": {
              "id": 3684,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3683,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4578,
                  "src": "6179:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3682,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6179:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6178:9:19"
            },
            "scope": 6368,
            "src": "5900:8855:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7624
            ],
            "body": {
              "id": 4716,
              "nodeType": "Block",
              "src": "15079:891:19",
              "statements": [
                {
                  "assignments": [
                    4592
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4592,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4716,
                      "src": "15083:32:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4591,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "15083:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4596,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4593,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "15118:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 4595,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4594,
                      "name": "_dealid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4581,
                      "src": "15126:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15118:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15083:51:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4601,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4598,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4583,
                          "src": "15147:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4599,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4592,
                            "src": "15154:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 4600,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "botFirst",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 313,
                          "src": "15154:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "15147:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4597,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "15139:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4602,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15139:47:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4603,
                  "nodeType": "ExpressionStatement",
                  "src": "15139:47:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4612,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4605,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4583,
                          "src": "15198:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4609,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4592,
                                "src": "15223:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal memory"
                                }
                              },
                              "id": 4610,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "botSize",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 315,
                              "src": "15223:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4606,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4592,
                                "src": "15205:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal memory"
                                }
                              },
                              "id": 4607,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "botFirst",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 313,
                              "src": "15205:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4608,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "add",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10364,
                            "src": "15205:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 4611,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15205:31:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "15198:38:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4604,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "15190:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4613,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15190:47:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4614,
                  "nodeType": "ExpressionStatement",
                  "src": "15190:47:19"
                },
                {
                  "assignments": [
                    4616
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4616,
                      "mutability": "mutable",
                      "name": "taskid",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4716,
                      "src": "15242:14:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4615,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "15242:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4624,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4620,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4581,
                            "src": "15287:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4621,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4583,
                            "src": "15296:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4618,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "15270:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 4619,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15270:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 4622,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15270:30:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 4617,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "15260:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4623,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15260:41:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15242:59:19"
                },
                {
                  "assignments": [
                    4628
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4628,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4716,
                      "src": "15305:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4627,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "15305:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4632,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4629,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "15341:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 4631,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4630,
                      "name": "taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4616,
                      "src": "15349:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15341:15:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15305:51:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 4639,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4634,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4628,
                            "src": "15368:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 4635,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "15368:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4636,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "15383:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 4637,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "15383:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 4638,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "UNSET",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15383:36:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "15368:51:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4633,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "15360:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4640,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15360:60:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4641,
                  "nodeType": "ExpressionStatement",
                  "src": "15360:60:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4642,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15425:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4644,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 328,
                      "src": "15425:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4645,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "15453:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 4646,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "TaskStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 326,
                        "src": "15453:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                          "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                        }
                      },
                      "id": 4647,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "ACTIVE",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15453:37:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "src": "15425:65:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                      "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                    }
                  },
                  "id": 4649,
                  "nodeType": "ExpressionStatement",
                  "src": "15425:65:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4650,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15494:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4652,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "dealid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 330,
                      "src": "15494:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4653,
                      "name": "_dealid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4581,
                      "src": "15522:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "15494:35:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4655,
                  "nodeType": "ExpressionStatement",
                  "src": "15494:35:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4656,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15533:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4658,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "idx",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 332,
                      "src": "15533:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4659,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4583,
                      "src": "15561:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15533:31:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4661,
                  "nodeType": "ExpressionStatement",
                  "src": "15533:31:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4662,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15568:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4664,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeref",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 334,
                      "src": "15568:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 4665,
                          "name": "m_categories",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 261,
                          "src": "15596:12:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_Category_$282_storage_$dyn_storage",
                            "typeString": "struct IexecLibCore_v5.Category storage ref[] storage ref"
                          }
                        },
                        "id": 4668,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4666,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4592,
                            "src": "15609:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 4667,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "category",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 299,
                          "src": "15609:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15596:27:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Category_$282_storage",
                          "typeString": "struct IexecLibCore_v5.Category storage ref"
                        }
                      },
                      "id": 4669,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "workClockTimeRef",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 281,
                      "src": "15596:44:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15568:72:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4671,
                  "nodeType": "ExpressionStatement",
                  "src": "15568:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4684,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4672,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15644:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4674,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "contributionDeadline",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 336,
                      "src": "15644:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4681,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4592,
                            "src": "15722:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 4682,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "startTime",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 311,
                          "src": "15722:14:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4678,
                              "name": "CONTRIBUTION_DEADLINE_RATIO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 201,
                              "src": "15689:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4675,
                                "name": "task",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4628,
                                "src": "15672:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                }
                              },
                              "id": 4676,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeref",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 334,
                              "src": "15672:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4677,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "mul",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10423,
                            "src": "15672:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 4679,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15672:45:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4680,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "15672:49:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4683,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15672:65:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15644:93:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4685,
                  "nodeType": "ExpressionStatement",
                  "src": "15644:93:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4698,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4686,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15741:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4688,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalDeadline",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 340,
                      "src": "15741:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4695,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4592,
                            "src": "15819:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 4696,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "startTime",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 311,
                          "src": "15819:14:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4692,
                              "name": "FINAL_DEADLINE_RATIO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 207,
                              "src": "15793:20:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4689,
                                "name": "task",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4628,
                                "src": "15769:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                }
                              },
                              "id": 4690,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeref",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 334,
                              "src": "15769:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4691,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "mul",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10423,
                            "src": "15769:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 4693,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15769:45:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4694,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "15769:49:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4697,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15769:65:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15741:93:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4699,
                  "nodeType": "ExpressionStatement",
                  "src": "15741:93:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4705,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 4700,
                          "name": "m_consensus",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 244,
                          "src": "15862:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Consensus_$363_storage_$",
                            "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Consensus storage ref)"
                          }
                        },
                        "id": 4702,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 4701,
                          "name": "taskid",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4616,
                          "src": "15874:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15862:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage",
                          "typeString": "struct IexecLibCore_v5.Consensus storage ref"
                        }
                      },
                      "id": 4703,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "total",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 362,
                      "src": "15862:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 4704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15890:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "15862:29:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4706,
                  "nodeType": "ExpressionStatement",
                  "src": "15862:29:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4708,
                        "name": "taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4616,
                        "src": "15916:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4709,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4592,
                            "src": "15924:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 4710,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "15924:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                            "typeString": "struct IexecLibCore_v5.Resource memory"
                          }
                        },
                        "id": 4711,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "pointer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 284,
                        "src": "15924:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 4707,
                      "name": "TaskInitialize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7523,
                      "src": "15901:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 4712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15901:47:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4713,
                  "nodeType": "EmitStatement",
                  "src": "15896:52:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4714,
                    "name": "taskid",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4616,
                    "src": "15960:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4588,
                  "id": 4715,
                  "nodeType": "Return",
                  "src": "15953:13:19"
                }
              ]
            },
            "documentation": {
              "id": 4579,
              "nodeType": "StructuredDocumentation",
              "src": "14758:233:19",
              "text": "*************************************************************************\n                           Consensus methods                            ***************************************************************************"
            },
            "functionSelector": "5b36c66b",
            "id": 4717,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4585,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "15051:8:19"
            },
            "parameters": {
              "id": 4584,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4581,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4717,
                  "src": "15013:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4580,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15013:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4583,
                  "mutability": "mutable",
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4717,
                  "src": "15030:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4582,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15030:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15012:30:19"
            },
            "returnParameters": {
              "id": 4588,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4587,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4717,
                  "src": "15069:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4586,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15069:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15068:9:19"
            },
            "scope": 6368,
            "src": "14993:977:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7639
            ],
            "body": {
              "id": 4994,
              "nodeType": "Block",
              "src": "16266:2589:19",
              "statements": [
                {
                  "assignments": [
                    4736
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4736,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "16270:41:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4735,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "16270:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4740,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4737,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "16322:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 4739,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4738,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4719,
                      "src": "16330:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16322:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16270:68:19"
                },
                {
                  "assignments": [
                    4744
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4744,
                      "mutability": "mutable",
                      "name": "contribution",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "16342:49:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Contribution"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4743,
                        "name": "IexecLibCore_v5.Contribution",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 379,
                        "src": "16342:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4751,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4745,
                        "name": "m_contributions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 250,
                        "src": "16394:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                          "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                        }
                      },
                      "id": 4747,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4746,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4719,
                        "src": "16410:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "16394:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                        "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                      }
                    },
                    "id": 4750,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 4748,
                        "name": "_msgSender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10740,
                        "src": "16419:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                          "typeString": "function () view returns (address payable)"
                        }
                      },
                      "id": 4749,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16419:12:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16394:38:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Contribution_$379_storage",
                      "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16342:90:19"
                },
                {
                  "assignments": [
                    4755
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4755,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "16436:41:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4754,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "16436:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4760,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4756,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "16488:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 4759,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4757,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4736,
                        "src": "16496:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4758,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dealid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 330,
                      "src": "16496:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16488:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16436:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 4767,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4762,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4736,
                            "src": "16521:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 4763,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "16521:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4764,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "16550:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 4765,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "16550:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 4766,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "ACTIVE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16550:37:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "16521:66:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4761,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "16513:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4768,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16513:82:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4769,
                  "nodeType": "ExpressionStatement",
                  "src": "16513:82:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4771,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4736,
                            "src": "16607:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 4772,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contributionDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 336,
                          "src": "16607:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 4773,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "16636:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16607:32:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4770,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "16599:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4775,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16599:82:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4776,
                  "nodeType": "ExpressionStatement",
                  "src": "16599:82:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                          "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                        },
                        "id": 4783,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4778,
                            "name": "contribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4744,
                            "src": "16693:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                            }
                          },
                          "id": 4779,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 370,
                          "src": "16693:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4780,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "16722:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 4781,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "ContributionStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 368,
                            "src": "16722:38:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                              "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                            }
                          },
                          "id": 4782,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "UNSET",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16722:44:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          }
                        },
                        "src": "16693:73:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4777,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "16685:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4784,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16685:82:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4785,
                  "nodeType": "ExpressionStatement",
                  "src": "16685:82:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4802,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 4792,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4787,
                            "name": "_enclaveChallenge",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4725,
                            "src": "16822:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 4790,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16851:1:19",
                                "subdenomination": null,
                                "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": 4789,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "16843:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 4788,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "16843:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 4791,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "16843:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "16822:31:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              },
                              "id": 4800,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes1",
                                  "typeString": "bytes1"
                                },
                                "id": 4798,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4793,
                                      "name": "deal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4755,
                                      "src": "16858:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                        "typeString": "struct IexecLibCore_v5.Deal memory"
                                      }
                                    },
                                    "id": 4794,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "tag",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 301,
                                    "src": "16858:8:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "id": 4796,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "3331",
                                    "id": 4795,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16867:2:19",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_31_by_1",
                                      "typeString": "int_const 31"
                                    },
                                    "value": "31"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "16858:12:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes1",
                                    "typeString": "bytes1"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "&",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30783031",
                                  "id": 4797,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "16873:4:19",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "0x01"
                                },
                                "src": "16858:19:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes1",
                                  "typeString": "bytes1"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 4799,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16881:1:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "16858:24:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 4801,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16857:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "16822:61:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4786,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "16814:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4803,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16814:70:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4804,
                  "nodeType": "ExpressionStatement",
                  "src": "16814:70:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "id": 4819,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    "id": 4812,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 4807,
                                      "name": "_enclaveChallenge",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4725,
                                      "src": "17021:17:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "!=",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "30",
                                          "id": 4810,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "17050:1:19",
                                          "subdenomination": null,
                                          "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": 4809,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "17042:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": {
                                          "id": 4808,
                                          "name": "address",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "17042:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 4811,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "17042:10:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    "src": "17021:31:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "&&",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    "id": 4818,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 4813,
                                      "name": "m_teebroker",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 256,
                                      "src": "17056:11:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "!=",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "30",
                                          "id": 4816,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "17079:1:19",
                                          "subdenomination": null,
                                          "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": 4815,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "17071:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": {
                                          "id": 4814,
                                          "name": "address",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "17071:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 4817,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "17071:10:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    "src": "17056:25:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "src": "17021:60:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 4820,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "17019:64:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4822,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4755,
                                  "src": "17100:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal memory"
                                  }
                                },
                                "id": 4823,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "workerpool",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 295,
                                "src": "17100:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                                  "typeString": "struct IexecLibCore_v5.Resource memory"
                                }
                              },
                              "id": 4824,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 286,
                              "src": "17100:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 4825,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "17019:102:19",
                            "trueExpression": {
                              "argumentTypes": null,
                              "id": 4821,
                              "name": "m_teebroker",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 256,
                              "src": "17086:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "id": 4830,
                                          "name": "_msgSender",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10740,
                                          "src": "17178:10:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                            "typeString": "function () view returns (address payable)"
                                          }
                                        },
                                        "id": 4831,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "17178:12:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 4832,
                                        "name": "_taskid",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4719,
                                        "src": "17196:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 4833,
                                        "name": "_enclaveChallenge",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4725,
                                        "src": "17209:17:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 4828,
                                        "name": "abi",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -1,
                                        "src": "17156:3:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_abi",
                                          "typeString": "abi"
                                        }
                                      },
                                      "id": 4829,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberName": "encodePacked",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "17156:16:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                        "typeString": "function () pure returns (bytes memory)"
                                      }
                                    },
                                    "id": 4834,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "17156:75:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 4827,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -8,
                                  "src": "17146:9:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 4835,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "17146:86:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 4826,
                              "name": "_toEthSignedMessage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6446,
                              "src": "17126:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function (bytes32) pure returns (bytes memory)"
                              }
                            },
                            "id": 4836,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "17126:107:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4837,
                            "name": "_authorizationSign",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4729,
                            "src": "17238:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 4806,
                          "name": "_checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            6674,
                            6757
                          ],
                          "referencedDeclaration": 6757,
                          "src": "16999:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                          }
                        },
                        "id": 4838,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16999:261:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4805,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "16991:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4839,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16991:270:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4840,
                  "nodeType": "ExpressionStatement",
                  "src": "16991:270:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4861,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 4847,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4842,
                            "name": "_enclaveChallenge",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4725,
                            "src": "17303:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 4845,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "17332:1:19",
                                "subdenomination": null,
                                "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": 4844,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "17324:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 4843,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "17324:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 4846,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "17324:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "17303:31:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4849,
                              "name": "_enclaveChallenge",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4725,
                              "src": "17358:17:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 4854,
                                          "name": "_resultHash",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4721,
                                          "src": "17432:11:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "id": 4855,
                                          "name": "_resultSeal",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4723,
                                          "src": "17449:11:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 4852,
                                          "name": "abi",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": -1,
                                          "src": "17410:3:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_magic_abi",
                                            "typeString": "abi"
                                          }
                                        },
                                        "id": 4853,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberName": "encodePacked",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "17410:16:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                          "typeString": "function () pure returns (bytes memory)"
                                        }
                                      },
                                      "id": 4856,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "17410:55:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 4851,
                                    "name": "keccak256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": -8,
                                    "src": "17400:9:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 4857,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "17400:66:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 4850,
                                "name": "_toEthSignedMessage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6446,
                                "src": "17380:19:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function (bytes32) pure returns (bytes memory)"
                                }
                              },
                              "id": 4858,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "17380:87:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4859,
                              "name": "_enclaveSign",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4727,
                              "src": "17472:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 4848,
                            "name": "_checkSignature",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              6674,
                              6757
                            ],
                            "referencedDeclaration": 6757,
                            "src": "17338:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                              "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                            }
                          },
                          "id": 4860,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17338:150:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "17303:185:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4841,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "17295:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17295:194:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4863,
                  "nodeType": "ExpressionStatement",
                  "src": "17295:194:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4870,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4864,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4744,
                        "src": "17525:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 4866,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 370,
                      "src": "17525:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4867,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "17557:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 4868,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "ContributionStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 368,
                        "src": "17557:38:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                          "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                        }
                      },
                      "id": 4869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "CONTRIBUTED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "17557:50:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "src": "17525:82:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                      "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                    }
                  },
                  "id": 4871,
                  "nodeType": "ExpressionStatement",
                  "src": "17525:82:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4876,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4872,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4744,
                        "src": "17611:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 4874,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 372,
                      "src": "17611:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4875,
                      "name": "_resultHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4721,
                      "src": "17643:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "17611:43:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4877,
                  "nodeType": "ExpressionStatement",
                  "src": "17611:43:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4882,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4878,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4744,
                        "src": "17658:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 4880,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultSeal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 374,
                      "src": "17658:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4881,
                      "name": "_resultSeal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4723,
                      "src": "17690:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "17658:43:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4883,
                  "nodeType": "ExpressionStatement",
                  "src": "17658:43:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4884,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4744,
                        "src": "17705:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 4886,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "enclaveChallenge",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 376,
                      "src": "17705:29:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4887,
                      "name": "_enclaveChallenge",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4725,
                      "src": "17737:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17705:49:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4889,
                  "nodeType": "ExpressionStatement",
                  "src": "17705:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 4895,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "17781:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 4896,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17781:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4890,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4736,
                          "src": "17758:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 4893,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "17758:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 4894,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "17758:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 4897,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17758:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4898,
                  "nodeType": "ExpressionStatement",
                  "src": "17758:36:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4900,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4736,
                          "src": "17816:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 4901,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "17816:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 4902,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "17829:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 4903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17829:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 4899,
                      "name": "lockContribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3342,
                      "src": "17799:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 4904,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17799:43:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4905,
                  "nodeType": "ExpressionStatement",
                  "src": "17799:43:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4907,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4719,
                        "src": "17867:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 4908,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "17876:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 4909,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17876:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4910,
                        "name": "_resultHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4721,
                        "src": "17890:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 4906,
                      "name": "TaskContribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7531,
                      "src": "17852:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32)"
                      }
                    },
                    "id": 4911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17852:50:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4912,
                  "nodeType": "EmitStatement",
                  "src": "17847:55:19"
                },
                {
                  "assignments": [
                    4916
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4916,
                      "mutability": "mutable",
                      "name": "consensus",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "18364:43:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Consensus"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4915,
                        "name": "IexecLibCore_v5.Consensus",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 363,
                        "src": "18364:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4920,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4917,
                      "name": "m_consensus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 244,
                      "src": "18410:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Consensus_$363_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Consensus storage ref)"
                      }
                    },
                    "id": 4919,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4918,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4719,
                      "src": "18422:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "18410:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Consensus_$363_storage",
                      "typeString": "struct IexecLibCore_v5.Consensus storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18364:66:19"
                },
                {
                  "assignments": [
                    4922
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4922,
                      "mutability": "mutable",
                      "name": "weight",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "18435:14:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4921,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "18435:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4936,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 4934,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18499:1:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "33",
                            "id": 4931,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18492:1:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_3_by_1",
                              "typeString": "int_const 3"
                            },
                            "value": "3"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_3_by_1",
                              "typeString": "int_const 3"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "33",
                                "id": 4928,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "18485:1:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_3_by_1",
                                  "typeString": "int_const 3"
                                },
                                "value": "3"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_3_by_1",
                                  "typeString": "int_const 3"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4923,
                                  "name": "m_workerScores",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 254,
                                  "src": "18452:14:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 4926,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "id": 4924,
                                    "name": "_msgSender",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10740,
                                    "src": "18467:10:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                      "typeString": "function () view returns (address payable)"
                                    }
                                  },
                                  "id": 4925,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "18467:12:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "18452:28:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4927,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "div",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10448,
                              "src": "18452:32:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4929,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "18452:35:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4930,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "max",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10487,
                          "src": "18452:39:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 4932,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18452:42:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 4933,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10389,
                      "src": "18452:46:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 4935,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18452:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18435:66:19"
                },
                {
                  "assignments": [
                    4938
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4938,
                      "mutability": "mutable",
                      "name": "group",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "18505:13:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4937,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "18505:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4943,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4939,
                        "name": "consensus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4916,
                        "src": "18522:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                        }
                      },
                      "id": 4940,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "group",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 360,
                      "src": "18522:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 4942,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4941,
                      "name": "_resultHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4721,
                      "src": "18538:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "18522:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18505:45:19"
                },
                {
                  "assignments": [
                    4945
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4945,
                      "mutability": "mutable",
                      "name": "delta",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "18554:13:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4944,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "18554:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4956,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4954,
                        "name": "group",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4938,
                        "src": "18600:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4951,
                            "name": "weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4922,
                            "src": "18588:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 4948,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "18581:1:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 4946,
                                "name": "group",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4938,
                                "src": "18571:5:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4947,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "max",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10487,
                              "src": "18571:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4949,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "18571:12:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4950,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "mul",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10423,
                          "src": "18571:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 4952,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18571:24:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 4953,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10389,
                      "src": "18571:28:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 4955,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18571:35:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18554:52:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4957,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4744,
                        "src": "18611:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 4959,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "weight",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 378,
                      "src": "18611:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "id": 4960,
                          "name": "weight",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4922,
                          "src": "18642:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4961,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "log",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10553,
                        "src": "18642:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4962,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18642:12:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18611:43:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4964,
                  "nodeType": "ExpressionStatement",
                  "src": "18611:43:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4965,
                          "name": "consensus",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4916,
                          "src": "18658:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                          }
                        },
                        "id": 4968,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "group",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 360,
                        "src": "18658:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4969,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4967,
                        "name": "_resultHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4721,
                        "src": "18674:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "18658:28:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4975,
                          "name": "delta",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4945,
                          "src": "18722:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4970,
                              "name": "consensus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4916,
                              "src": "18689:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                              }
                            },
                            "id": 4971,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "group",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 360,
                            "src": "18689:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4973,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4972,
                            "name": "_resultHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4721,
                            "src": "18705:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18689:28:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4974,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "18689:32:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4976,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18689:39:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18658:70:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4978,
                  "nodeType": "ExpressionStatement",
                  "src": "18658:70:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4987,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4979,
                        "name": "consensus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4916,
                        "src": "18732:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                        }
                      },
                      "id": 4981,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "total",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 362,
                      "src": "18732:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4985,
                          "name": "delta",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4945,
                          "src": "18783:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4982,
                            "name": "consensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4916,
                            "src": "18763:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                            }
                          },
                          "id": 4983,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "total",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 362,
                          "src": "18763:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4984,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "18763:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4986,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18763:26:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18732:57:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4988,
                  "nodeType": "ExpressionStatement",
                  "src": "18732:57:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4990,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4719,
                        "src": "18830:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4991,
                        "name": "_resultHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4721,
                        "src": "18839:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 4989,
                      "name": "checkConsensus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5964,
                      "src": "18815:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 4992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18815:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4993,
                  "nodeType": "ExpressionStatement",
                  "src": "18815:36:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "34623484",
            "id": 4995,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contribute",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4731,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "16256:8:19"
            },
            "parameters": {
              "id": 4730,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4719,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16072:20:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4718,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16072:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4721,
                  "mutability": "mutable",
                  "name": "_resultHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16096:24:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4720,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16096:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4723,
                  "mutability": "mutable",
                  "name": "_resultSeal",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16124:24:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4722,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16124:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4725,
                  "mutability": "mutable",
                  "name": "_enclaveChallenge",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16152:30:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4724,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "16152:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4727,
                  "mutability": "mutable",
                  "name": "_enclaveSign",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16186:25:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 4726,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "16186:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4729,
                  "mutability": "mutable",
                  "name": "_authorizationSign",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16215:31:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 4728,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "16215:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16068:179:19"
            },
            "returnParameters": {
              "id": 4732,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16266:0:19"
            },
            "scope": 6368,
            "src": "16049:2806:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7646
            ],
            "body": {
              "id": 5114,
              "nodeType": "Block",
              "src": "18949:1020:19",
              "statements": [
                {
                  "assignments": [
                    5006
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5006,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5114,
                      "src": "18953:41:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5005,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "18953:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5010,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5007,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "19005:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5009,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5008,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4997,
                      "src": "19013:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "19005:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18953:68:19"
                },
                {
                  "assignments": [
                    5014
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5014,
                      "mutability": "mutable",
                      "name": "contribution",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5114,
                      "src": "19025:49:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Contribution"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5013,
                        "name": "IexecLibCore_v5.Contribution",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 379,
                        "src": "19025:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5021,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5015,
                        "name": "m_contributions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 250,
                        "src": "19077:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                          "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                        }
                      },
                      "id": 5017,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5016,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4997,
                        "src": "19093:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "19077:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                        "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                      }
                    },
                    "id": 5020,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 5018,
                        "name": "_msgSender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10740,
                        "src": "19102:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                          "typeString": "function () view returns (address payable)"
                        }
                      },
                      "id": 5019,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19102:12:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "19077:38:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Contribution_$379_storage",
                      "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "19025:90:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 5028,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5023,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5006,
                            "src": "19127:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5024,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "19127:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5025,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "19154:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 5026,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "19154:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 5027,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "REVEALING",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "19154:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "19127:67:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5022,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19119:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19119:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5030,
                  "nodeType": "ExpressionStatement",
                  "src": "19119:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5035,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5032,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5006,
                            "src": "19232:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5033,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "revealDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 338,
                          "src": "19232:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5034,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "19259:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "19232:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5031,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19224:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5036,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19224:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5037,
                  "nodeType": "ExpressionStatement",
                  "src": "19224:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                          "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                        },
                        "id": 5044,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5039,
                            "name": "contribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5014,
                            "src": "19337:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                            }
                          },
                          "id": 5040,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 370,
                          "src": "19337:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5041,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "19364:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 5042,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "ContributionStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 368,
                            "src": "19364:38:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                              "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                            }
                          },
                          "id": 5043,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "CONTRIBUTED",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "19364:50:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          }
                        },
                        "src": "19337:77:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5038,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19329:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5045,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19329:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5046,
                  "nodeType": "ExpressionStatement",
                  "src": "19329:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 5052,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5048,
                            "name": "contribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5014,
                            "src": "19442:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                            }
                          },
                          "id": 5049,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "resultHash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 372,
                          "src": "19442:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5050,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5006,
                            "src": "19469:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5051,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "consensusValue",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 342,
                          "src": "19469:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "19442:46:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5047,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19434:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19434:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5054,
                  "nodeType": "ExpressionStatement",
                  "src": "19434:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 5065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5056,
                            "name": "contribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5014,
                            "src": "19547:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                            }
                          },
                          "id": 5057,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "resultHash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 372,
                          "src": "19547:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 5061,
                                  "name": "_taskid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4997,
                                  "src": "19615:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 5062,
                                  "name": "_resultDigest",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4999,
                                  "src": "19624:13:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 5059,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -1,
                                  "src": "19584:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 5060,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "19584:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 5063,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "19584:54:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 5058,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -8,
                            "src": "19574:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 5064,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19574:65:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "19547:92:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5055,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19539:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5066,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19539:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5067,
                  "nodeType": "ExpressionStatement",
                  "src": "19539:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 5080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5069,
                            "name": "contribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5014,
                            "src": "19652:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                            }
                          },
                          "id": 5070,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "resultSeal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 374,
                          "src": "19652:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "id": 5074,
                                    "name": "_msgSender",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10740,
                                    "src": "19706:10:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                      "typeString": "function () view returns (address payable)"
                                    }
                                  },
                                  "id": 5075,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "19706:12:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 5076,
                                  "name": "_taskid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4997,
                                  "src": "19720:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 5077,
                                  "name": "_resultDigest",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4999,
                                  "src": "19729:13:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 5072,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -1,
                                  "src": "19689:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 5073,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "19689:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 5078,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "19689:54:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 5071,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -8,
                            "src": "19679:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 5079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19679:65:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "19652:92:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5068,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19644:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5081,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19644:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5082,
                  "nodeType": "ExpressionStatement",
                  "src": "19644:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5089,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5083,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5014,
                        "src": "19750:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5085,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 370,
                      "src": "19750:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5086,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "19772:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5087,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "ContributionStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 368,
                        "src": "19772:38:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                          "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                        }
                      },
                      "id": 5088,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "19772:45:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "src": "19750:67:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                      "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                    }
                  },
                  "id": 5090,
                  "nodeType": "ExpressionStatement",
                  "src": "19750:67:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5099,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5091,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5006,
                        "src": "19821:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5093,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealCounter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 344,
                      "src": "19821:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 5097,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "19866:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5094,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5006,
                            "src": "19843:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5095,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "revealCounter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 344,
                          "src": "19843:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5096,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "19843:22:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5098,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19843:25:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "19821:47:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5100,
                  "nodeType": "ExpressionStatement",
                  "src": "19821:47:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5101,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5006,
                        "src": "19872:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5103,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultDigest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 351,
                      "src": "19872:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5104,
                      "name": "_resultDigest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4999,
                      "src": "19894:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "19872:35:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5106,
                  "nodeType": "ExpressionStatement",
                  "src": "19872:35:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5108,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4997,
                        "src": "19928:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5109,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "19937:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 5110,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "19937:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5111,
                        "name": "_resultDigest",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4999,
                        "src": "19951:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5107,
                      "name": "TaskReveal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7545,
                      "src": "19917:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32)"
                      }
                    },
                    "id": 5112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19917:48:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5113,
                  "nodeType": "EmitStatement",
                  "src": "19912:53:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "fc334e8c",
            "id": 5115,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "reveal",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5001,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "18929:8:19"
            },
            "parameters": {
              "id": 5000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4997,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5115,
                  "src": "18877:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4996,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18877:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4999,
                  "mutability": "mutable",
                  "name": "_resultDigest",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5115,
                  "src": "18896:21:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4998,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18896:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18873:45:19"
            },
            "returnParameters": {
              "id": 5002,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18949:0:19"
            },
            "scope": 6368,
            "src": "18858:1111:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7651
            ],
            "body": {
              "id": 5264,
              "nodeType": "Block",
              "src": "20051:946:19",
              "statements": [
                {
                  "assignments": [
                    5127
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5127,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5264,
                      "src": "20055:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5126,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "20055:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5131,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5128,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "20091:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5130,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5129,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5117,
                      "src": "20099:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "20091:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20055:52:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 5138,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5133,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5127,
                            "src": "20119:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5134,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "20119:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5135,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "20142:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 5136,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "20142:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 5137,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "REVEALING",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20142:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "20119:63:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5132,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "20111:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20111:72:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5140,
                  "nodeType": "ExpressionStatement",
                  "src": "20111:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5142,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5127,
                            "src": "20195:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5143,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "finalDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 340,
                          "src": "20195:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5144,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "20218:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "20195:26:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5141,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "20187:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5146,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20187:72:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5147,
                  "nodeType": "ExpressionStatement",
                  "src": "20187:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5157,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5152,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5149,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5127,
                              "src": "20271:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5150,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "revealDeadline",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 338,
                            "src": "20271:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5151,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -17,
                            "src": "20294:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "20271:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5156,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5153,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5127,
                              "src": "20301:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5154,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "revealCounter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 344,
                            "src": "20301:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 5155,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "20323:1:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "20301:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "20271:53:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5148,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "20263:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20263:72:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5159,
                  "nodeType": "ExpressionStatement",
                  "src": "20263:72:19"
                },
                {
                  "body": {
                    "id": 5201,
                    "nodeType": "Block",
                    "src": "20397:227:19",
                    "statements": [
                      {
                        "assignments": [
                          5173
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5173,
                            "mutability": "mutable",
                            "name": "worker",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 5201,
                            "src": "20402:14:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 5172,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "20402:7:19",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5178,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5174,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5127,
                              "src": "20419:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5175,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contributors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 349,
                            "src": "20419:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 5177,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5176,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5161,
                            "src": "20437:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "20419:20:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "20402:37:19"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 5187,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5179,
                                  "name": "m_contributions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 250,
                                  "src": "20448:15:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                    "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                                  }
                                },
                                "id": 5181,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5180,
                                  "name": "_taskid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5117,
                                  "src": "20464:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "20448:24:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                                  "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                                }
                              },
                              "id": 5183,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 5182,
                                "name": "worker",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5173,
                                "src": "20473:6:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "20448:32:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Contribution_$379_storage",
                                "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                              }
                            },
                            "id": 5184,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "resultHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 372,
                            "src": "20448:43:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5185,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5127,
                              "src": "20495:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5186,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "consensusValue",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 342,
                            "src": "20495:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "20448:66:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 5200,
                        "nodeType": "IfStatement",
                        "src": "20444:176:19",
                        "trueBody": {
                          "id": 5199,
                          "nodeType": "Block",
                          "src": "20519:101:19",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5197,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 5188,
                                        "name": "m_contributions",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 250,
                                        "src": "20525:15:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                          "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                                        }
                                      },
                                      "id": 5191,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 5189,
                                        "name": "_taskid",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5117,
                                        "src": "20541:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "20525:24:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                                        "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                                      }
                                    },
                                    "id": 5192,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 5190,
                                      "name": "worker",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5173,
                                      "src": "20550:6:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "20525:32:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Contribution_$379_storage",
                                      "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                                    }
                                  },
                                  "id": 5193,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "status",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 370,
                                  "src": "20525:39:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                    "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5194,
                                      "name": "IexecLibCore_v5",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 380,
                                      "src": "20567:15:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                        "typeString": "type(library IexecLibCore_v5)"
                                      }
                                    },
                                    "id": 5195,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "ContributionStatusEnum",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 368,
                                    "src": "20567:38:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                                      "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                                    }
                                  },
                                  "id": 5196,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "REJECTED",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "20567:47:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                    "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                  }
                                },
                                "src": "20525:89:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                  "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                }
                              },
                              "id": 5198,
                              "nodeType": "ExpressionStatement",
                              "src": "20525:89:19"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5168,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5164,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5161,
                      "src": "20360:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5165,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5127,
                          "src": "20364:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5166,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "20364:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 5167,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "20364:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20360:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5202,
                  "initializationExpression": {
                    "assignments": [
                      5161
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5161,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 5202,
                        "src": "20345:9:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5160,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "20345:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 5163,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5162,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20357:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "20345:13:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 5170,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "20390:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 5169,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5161,
                        "src": "20392:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5171,
                    "nodeType": "ExpressionStatement",
                    "src": "20390:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "20340:284:19"
                },
                {
                  "assignments": [
                    5206
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5206,
                      "mutability": "mutable",
                      "name": "consensus",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5264,
                      "src": "20628:43:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Consensus"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5205,
                        "name": "IexecLibCore_v5.Consensus",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 363,
                        "src": "20628:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5210,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5207,
                      "name": "m_consensus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 244,
                      "src": "20674:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Consensus_$363_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Consensus storage ref)"
                      }
                    },
                    "id": 5209,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5208,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5117,
                      "src": "20686:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "20674:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Consensus_$363_storage",
                      "typeString": "struct IexecLibCore_v5.Consensus storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20628:66:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5211,
                        "name": "consensus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5206,
                        "src": "20698:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                        }
                      },
                      "id": 5213,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "total",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 362,
                      "src": "20698:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5217,
                              "name": "consensus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5206,
                              "src": "20736:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                              }
                            },
                            "id": 5218,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "group",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 360,
                            "src": "20736:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 5221,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5219,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5127,
                              "src": "20752:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5220,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "consensusValue",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 342,
                            "src": "20752:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "20736:36:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5214,
                            "name": "consensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5206,
                            "src": "20716:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                            }
                          },
                          "id": 5215,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "total",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 362,
                          "src": "20716:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5216,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10389,
                        "src": "20716:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5222,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20716:57:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20698:75:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5224,
                  "nodeType": "ExpressionStatement",
                  "src": "20698:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5232,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5225,
                          "name": "consensus",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5206,
                          "src": "20777:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                          }
                        },
                        "id": 5229,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "group",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 360,
                        "src": "20777:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 5230,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5227,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5127,
                          "src": "20793:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5228,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "consensusValue",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 342,
                        "src": "20793:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "20777:36:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5231,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20816:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20777:40:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5233,
                  "nodeType": "ExpressionStatement",
                  "src": "20777:40:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5240,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5234,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5127,
                        "src": "20822:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5236,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 328,
                      "src": "20822:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5237,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "20844:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5238,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "TaskStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 326,
                        "src": "20844:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                          "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                        }
                      },
                      "id": 5239,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "ACTIVE",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "20844:37:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "src": "20822:59:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                      "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                    }
                  },
                  "id": 5241,
                  "nodeType": "ExpressionStatement",
                  "src": "20822:59:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5242,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5127,
                        "src": "20885:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5244,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "consensusValue",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 342,
                      "src": "20885:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "307830",
                      "id": 5245,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20907:3:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0x0"
                    },
                    "src": "20885:25:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5247,
                  "nodeType": "ExpressionStatement",
                  "src": "20885:25:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5252,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5248,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5127,
                        "src": "20914:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5250,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealDeadline",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 338,
                      "src": "20914:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5251,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20936:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20914:23:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5253,
                  "nodeType": "ExpressionStatement",
                  "src": "20914:23:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5254,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5127,
                        "src": "20941:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5256,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "winnerCounter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 346,
                      "src": "20941:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5257,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20963:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20941:23:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5259,
                  "nodeType": "ExpressionStatement",
                  "src": "20941:23:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5261,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5117,
                        "src": "20985:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5260,
                      "name": "TaskReopen",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7549,
                      "src": "20974:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 5262,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20974:19:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5263,
                  "nodeType": "EmitStatement",
                  "src": "20969:24:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "f6c68e10",
            "id": 5265,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5121,
                    "name": "_taskid",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5117,
                    "src": "20041:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5122,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5120,
                  "name": "onlyScheduler",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 843,
                  "src": "20027:13:19",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "20027:22:19"
              }
            ],
            "name": "reopen",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5119,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "20018:8:19"
            },
            "parameters": {
              "id": 5118,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5117,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5265,
                  "src": "19991:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5116,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19991:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19987:20:19"
            },
            "returnParameters": {
              "id": 5123,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20051:0:19"
            },
            "scope": 6368,
            "src": "19972:1025:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7658
            ],
            "body": {
              "id": 5379,
              "nodeType": "Block",
              "src": "21119:842:19",
              "statements": [
                {
                  "assignments": [
                    5279
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5279,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5379,
                      "src": "21123:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5278,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "21123:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5283,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5280,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "21159:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5282,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5281,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5267,
                      "src": "21167:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "21159:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "21123:52:19"
                },
                {
                  "assignments": [
                    5287
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5287,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5379,
                      "src": "21179:33:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5286,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "21179:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5292,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5288,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "21215:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 5291,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5289,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5279,
                        "src": "21223:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5290,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dealid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 330,
                      "src": "21223:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "21215:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "21179:56:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 5299,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5294,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5279,
                            "src": "21248:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5295,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "21248:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5296,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "21270:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 5297,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "21270:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 5298,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "REVEALING",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "21270:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "21248:62:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5293,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "21240:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5300,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21240:107:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5301,
                  "nodeType": "ExpressionStatement",
                  "src": "21240:107:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5306,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5303,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5279,
                            "src": "21359:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5304,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "finalDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 340,
                          "src": "21359:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5305,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "21381:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "21359:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5302,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "21351:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5307,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21351:107:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5308,
                  "nodeType": "ExpressionStatement",
                  "src": "21351:107:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5325,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5314,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5310,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5279,
                              "src": "21470:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5311,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "revealCounter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 344,
                            "src": "21470:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5312,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5279,
                              "src": "21492:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5313,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "winnerCounter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 346,
                            "src": "21492:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21470:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 5323,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 5318,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 5315,
                                    "name": "task",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5279,
                                    "src": "21515:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                      "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                    }
                                  },
                                  "id": 5316,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "revealCounter",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 344,
                                  "src": "21515:18:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 5317,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "21536:1:19",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "21515:22:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 5322,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 5319,
                                    "name": "task",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5279,
                                    "src": "21541:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                      "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                    }
                                  },
                                  "id": 5320,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "revealDeadline",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 338,
                                  "src": "21541:19:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 5321,
                                  "name": "now",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -17,
                                  "src": "21564:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "21541:26:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "21515:52:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 5324,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "21514:54:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "21470:98:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5309,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "21462:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5326,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21462:107:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5327,
                  "nodeType": "ExpressionStatement",
                  "src": "21462:107:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5342,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5335,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5329,
                              "name": "deal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5287,
                              "src": "21582:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                "typeString": "struct IexecLibCore_v5.Deal memory"
                              }
                            },
                            "id": 5330,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "callback",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 307,
                            "src": "21582:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 5333,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "21607:1:19",
                                "subdenomination": null,
                                "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": 5332,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "21599:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5331,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "21599:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 5334,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "21599:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "21582:27:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 5341,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5337,
                                "name": "_results",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5269,
                                "src": "21623:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_calldata_ptr",
                                  "typeString": "bytes calldata"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_calldata_ptr",
                                  "typeString": "bytes calldata"
                                }
                              ],
                              "id": 5336,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -8,
                              "src": "21613:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 5338,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "21613:19:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5339,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5279,
                              "src": "21636:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5340,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "resultDigest",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 351,
                            "src": "21636:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "21613:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "21582:71:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5328,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "21574:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5343,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21574:80:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5344,
                  "nodeType": "ExpressionStatement",
                  "src": "21574:80:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5345,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5279,
                        "src": "21659:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5347,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 328,
                      "src": "21659:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5348,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "21674:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "TaskStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 326,
                        "src": "21674:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                          "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                        }
                      },
                      "id": 5350,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "COMPLETED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "21674:40:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "src": "21659:55:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                      "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                    }
                  },
                  "id": 5352,
                  "nodeType": "ExpressionStatement",
                  "src": "21659:55:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5357,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5353,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5279,
                        "src": "21718:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5355,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "results",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 353,
                      "src": "21718:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5356,
                      "name": "_results",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5269,
                      "src": "21733:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_calldata_ptr",
                        "typeString": "bytes calldata"
                      }
                    },
                    "src": "21718:23:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 5358,
                  "nodeType": "ExpressionStatement",
                  "src": "21718:23:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5360,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5279,
                          "src": "21803:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5361,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "21803:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5362,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5267,
                        "src": "21816:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5359,
                      "name": "successWork",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3549,
                      "src": "21791:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5363,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21791:33:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5364,
                  "nodeType": "ExpressionStatement",
                  "src": "21791:33:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5366,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5267,
                        "src": "21846:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5365,
                      "name": "distributeRewards",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6190,
                      "src": "21828:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 5367,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21828:26:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5368,
                  "nodeType": "ExpressionStatement",
                  "src": "21828:26:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5370,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5267,
                        "src": "21900:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5371,
                        "name": "_results",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5269,
                        "src": "21909:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 5369,
                      "name": "TaskFinalize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7555,
                      "src": "21887:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,bytes memory)"
                      }
                    },
                    "id": 5372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21887:31:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5373,
                  "nodeType": "EmitStatement",
                  "src": "21882:36:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5375,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5267,
                        "src": "21939:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5376,
                        "name": "_results",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5269,
                        "src": "21948:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 5374,
                      "name": "executeCallback",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6243,
                      "src": "21923:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,bytes memory)"
                      }
                    },
                    "id": 5377,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21923:34:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5378,
                  "nodeType": "ExpressionStatement",
                  "src": "21923:34:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "c037f13e",
            "id": 5380,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5273,
                    "name": "_taskid",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5267,
                    "src": "21109:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5274,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5272,
                  "name": "onlyScheduler",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 843,
                  "src": "21095:13:19",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "21095:22:19"
              }
            ],
            "name": "finalize",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5271,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "21086:8:19"
            },
            "parameters": {
              "id": 5270,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5267,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5380,
                  "src": "21021:24:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5266,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21021:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5269,
                  "mutability": "mutable",
                  "name": "_results",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5380,
                  "src": "21049:25:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5268,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "21049:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21017:58:19"
            },
            "returnParameters": {
              "id": 5275,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21119:0:19"
            },
            "scope": 6368,
            "src": "21000:961:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7663
            ],
            "body": {
              "id": 5462,
              "nodeType": "Block",
              "src": "22017:537:19",
              "statements": [
                {
                  "assignments": [
                    5389
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5389,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5462,
                      "src": "22021:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5388,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "22021:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5393,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5390,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "22057:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5392,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5391,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5382,
                      "src": "22065:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "22057:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "22021:52:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5407,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          },
                          "id": 5400,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5395,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5389,
                              "src": "22085:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5396,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 328,
                            "src": "22085:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5397,
                                "name": "IexecLibCore_v5",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 380,
                                "src": "22100:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                  "typeString": "type(library IexecLibCore_v5)"
                                }
                              },
                              "id": 5398,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "TaskStatusEnum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 326,
                              "src": "22100:30:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                                "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                              }
                            },
                            "id": 5399,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "ACTIVE",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "22100:37:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "src": "22085:52:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          },
                          "id": 5406,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5401,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5389,
                              "src": "22148:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5402,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 328,
                            "src": "22148:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5403,
                                "name": "IexecLibCore_v5",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 380,
                                "src": "22163:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                  "typeString": "type(library IexecLibCore_v5)"
                                }
                              },
                              "id": 5404,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "TaskStatusEnum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 326,
                              "src": "22163:30:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                                "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                              }
                            },
                            "id": 5405,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "REVEALING",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "22163:40:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "src": "22148:55:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "22085:118:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5394,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "22077:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5408,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22077:127:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5409,
                  "nodeType": "ExpressionStatement",
                  "src": "22077:127:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5411,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5389,
                            "src": "22216:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5412,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "finalDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 340,
                          "src": "22216:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5413,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "22238:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "22216:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5410,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "22208:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5415,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22208:34:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5416,
                  "nodeType": "ExpressionStatement",
                  "src": "22208:34:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5423,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5417,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5389,
                        "src": "22247:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5419,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 328,
                      "src": "22247:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5420,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "22261:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "TaskStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 326,
                        "src": "22261:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                          "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                        }
                      },
                      "id": 5422,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "FAILED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "22261:37:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "src": "22247:51:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                      "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                    }
                  },
                  "id": 5424,
                  "nodeType": "ExpressionStatement",
                  "src": "22247:51:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5426,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5389,
                          "src": "22348:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5427,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "22348:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5428,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5382,
                        "src": "22361:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5425,
                      "name": "failedWork",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3615,
                      "src": "22337:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5429,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22337:32:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5430,
                  "nodeType": "ExpressionStatement",
                  "src": "22337:32:19"
                },
                {
                  "body": {
                    "id": 5456,
                    "nodeType": "Block",
                    "src": "22430:91:19",
                    "statements": [
                      {
                        "assignments": [
                          5444
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5444,
                            "mutability": "mutable",
                            "name": "worker",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 5456,
                            "src": "22435:14:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 5443,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "22435:7:19",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5449,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5445,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5389,
                              "src": "22452:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5446,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contributors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 349,
                            "src": "22452:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 5448,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5447,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5432,
                            "src": "22470:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "22452:20:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "22435:37:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5451,
                                "name": "task",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5389,
                                "src": "22496:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                }
                              },
                              "id": 5452,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "dealid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 330,
                              "src": "22496:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 5453,
                              "name": "worker",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5444,
                              "src": "22509:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 5450,
                            "name": "unlockContribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3358,
                            "src": "22477:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address)"
                            }
                          },
                          "id": 5454,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "22477:39:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5455,
                        "nodeType": "ExpressionStatement",
                        "src": "22477:39:19"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5439,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5435,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5432,
                      "src": "22393:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5436,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5389,
                          "src": "22397:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5437,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "22397:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 5438,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "22397:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "22393:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5457,
                  "initializationExpression": {
                    "assignments": [
                      5432
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5432,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 5457,
                        "src": "22378:9:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5431,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "22378:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 5434,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5433,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "22390:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "22378:13:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 5441,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "22423:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 5440,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5432,
                        "src": "22425:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5442,
                    "nodeType": "ExpressionStatement",
                    "src": "22423:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "22373:148:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5459,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5382,
                        "src": "22542:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5458,
                      "name": "TaskClaimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7559,
                      "src": "22530:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 5460,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22530:20:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5461,
                  "nodeType": "EmitStatement",
                  "src": "22525:25:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "bd66528a",
            "id": 5463,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "claim",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5384,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "22007:8:19"
            },
            "parameters": {
              "id": 5383,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5382,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5463,
                  "src": "21982:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5381,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21982:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21978:20:19"
            },
            "returnParameters": {
              "id": 5385,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22017:0:19"
            },
            "scope": 6368,
            "src": "21964:590:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7678
            ],
            "body": {
              "id": 5815,
              "nodeType": "Block",
              "src": "22860:2871:19",
              "statements": [
                {
                  "assignments": [
                    5482
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5482,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "22864:41:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5481,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "22864:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5486,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5483,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "22916:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5485,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5484,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5465,
                      "src": "22924:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "22916:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "22864:68:19"
                },
                {
                  "assignments": [
                    5490
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5490,
                      "mutability": "mutable",
                      "name": "contribution",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "22936:49:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Contribution"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5489,
                        "name": "IexecLibCore_v5.Contribution",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 379,
                        "src": "22936:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5497,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5491,
                        "name": "m_contributions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 250,
                        "src": "22988:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                          "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                        }
                      },
                      "id": 5493,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5492,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "23004:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "22988:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                        "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                      }
                    },
                    "id": 5496,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 5494,
                        "name": "_msgSender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10740,
                        "src": "23013:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                          "typeString": "function () view returns (address payable)"
                        }
                      },
                      "id": 5495,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23013:12:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "22988:38:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Contribution_$379_storage",
                      "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "22936:90:19"
                },
                {
                  "assignments": [
                    5501
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5501,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "23030:41:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5500,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "23030:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5506,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5502,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "23082:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 5505,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5503,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "23090:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5504,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dealid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 330,
                      "src": "23090:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "23082:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "23030:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 5513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5508,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5482,
                            "src": "23115:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5509,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "23115:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5510,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "23144:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 5511,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "23144:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 5512,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "ACTIVE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "23144:37:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "23115:66:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5507,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23107:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5514,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23107:75:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5515,
                  "nodeType": "ExpressionStatement",
                  "src": "23107:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5520,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5517,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5482,
                            "src": "23194:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5518,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contributionDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 336,
                          "src": "23194:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5519,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "23223:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "23194:32:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5516,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23186:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23186:75:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5522,
                  "nodeType": "ExpressionStatement",
                  "src": "23186:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5528,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5524,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5482,
                              "src": "23273:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5525,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contributors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 349,
                            "src": "23273:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 5526,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "23273:24:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5527,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "23302:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "23273:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5523,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23265:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5529,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23265:75:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5530,
                  "nodeType": "ExpressionStatement",
                  "src": "23265:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5535,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5532,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5501,
                            "src": "23352:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 5533,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "trust",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 297,
                          "src": "23352:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 5534,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "23381:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "23352:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5531,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23344:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5536,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23344:75:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5537,
                  "nodeType": "ExpressionStatement",
                  "src": "23344:75:19"
                },
                {
                  "assignments": [
                    5539
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5539,
                      "mutability": "mutable",
                      "name": "resultHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "23476:18:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5538,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "23476:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5547,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5543,
                            "name": "_taskid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5465,
                            "src": "23538:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5544,
                            "name": "_resultDigest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5467,
                            "src": "23547:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5541,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "23507:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5542,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "23507:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5545,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23507:54:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5540,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "23497:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 5546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23497:65:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "23476:86:19"
                },
                {
                  "assignments": [
                    5549
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5549,
                      "mutability": "mutable",
                      "name": "resultSeal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "23566:18:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5548,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "23566:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5559,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 5553,
                              "name": "_msgSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10740,
                              "src": "23614:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                "typeString": "function () view returns (address payable)"
                              }
                            },
                            "id": 5554,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23614:12:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5555,
                            "name": "_taskid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5465,
                            "src": "23628:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5556,
                            "name": "_resultDigest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5467,
                            "src": "23637:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5551,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "23597:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5552,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "23597:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23597:54:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5550,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "23587:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 5558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23587:65:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "23566:86:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5573,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5567,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5561,
                              "name": "deal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5501,
                              "src": "23665:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                "typeString": "struct IexecLibCore_v5.Deal memory"
                              }
                            },
                            "id": 5562,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "callback",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 307,
                            "src": "23665:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 5565,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "23690:1:19",
                                "subdenomination": null,
                                "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": 5564,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "23682:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5563,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "23682:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 5566,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23682:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "23665:27:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 5572,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5569,
                                "name": "_results",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5469,
                                "src": "23706:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 5568,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -8,
                              "src": "23696:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 5570,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23696:19:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5571,
                            "name": "_resultDigest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5467,
                            "src": "23719:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "23696:36:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "23665:67:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5560,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23657:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23657:76:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5575,
                  "nodeType": "ExpressionStatement",
                  "src": "23657:76:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5592,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5582,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5577,
                            "name": "_enclaveChallenge",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5471,
                            "src": "23788:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 5580,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "23817:1:19",
                                "subdenomination": null,
                                "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": 5579,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "23809:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5578,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "23809:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 5581,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23809:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "23788:31:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              },
                              "id": 5590,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes1",
                                  "typeString": "bytes1"
                                },
                                "id": 5588,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5583,
                                      "name": "deal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5501,
                                      "src": "23824:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                        "typeString": "struct IexecLibCore_v5.Deal memory"
                                      }
                                    },
                                    "id": 5584,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "tag",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 301,
                                    "src": "23824:8:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "id": 5586,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "3331",
                                    "id": 5585,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "23833:2:19",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_31_by_1",
                                      "typeString": "int_const 31"
                                    },
                                    "value": "31"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "23824:12:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes1",
                                    "typeString": "bytes1"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "&",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30783031",
                                  "id": 5587,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "23839:4:19",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "0x01"
                                },
                                "src": "23824:19:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes1",
                                  "typeString": "bytes1"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 5589,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "23847:1:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "23824:24:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 5591,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "23823:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "23788:61:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5576,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23780:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23780:70:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5594,
                  "nodeType": "ExpressionStatement",
                  "src": "23780:70:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "id": 5609,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    "id": 5602,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 5597,
                                      "name": "_enclaveChallenge",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5471,
                                      "src": "23987:17:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "!=",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "30",
                                          "id": 5600,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "24016:1:19",
                                          "subdenomination": null,
                                          "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": 5599,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "24008:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": {
                                          "id": 5598,
                                          "name": "address",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "24008:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 5601,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "24008:10:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    "src": "23987:31:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "&&",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    "id": 5608,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 5603,
                                      "name": "m_teebroker",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 256,
                                      "src": "24022:11:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "!=",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "30",
                                          "id": 5606,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "24045:1:19",
                                          "subdenomination": null,
                                          "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": 5605,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "24037:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": {
                                          "id": 5604,
                                          "name": "address",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "24037:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 5607,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "24037:10:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    "src": "24022:25:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "src": "23987:60:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 5610,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "23985:64:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 5612,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5501,
                                  "src": "24066:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal memory"
                                  }
                                },
                                "id": 5613,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "workerpool",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 295,
                                "src": "24066:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                                  "typeString": "struct IexecLibCore_v5.Resource memory"
                                }
                              },
                              "id": 5614,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 286,
                              "src": "24066:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 5615,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "23985:102:19",
                            "trueExpression": {
                              "argumentTypes": null,
                              "id": 5611,
                              "name": "m_teebroker",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 256,
                              "src": "24052:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "id": 5620,
                                          "name": "_msgSender",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10740,
                                          "src": "24144:10:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                            "typeString": "function () view returns (address payable)"
                                          }
                                        },
                                        "id": 5621,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "24144:12:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 5622,
                                        "name": "_taskid",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5465,
                                        "src": "24162:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 5623,
                                        "name": "_enclaveChallenge",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5471,
                                        "src": "24175:17:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 5618,
                                        "name": "abi",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -1,
                                        "src": "24122:3:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_abi",
                                          "typeString": "abi"
                                        }
                                      },
                                      "id": 5619,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberName": "encodePacked",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "24122:16:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                        "typeString": "function () pure returns (bytes memory)"
                                      }
                                    },
                                    "id": 5624,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "24122:75:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 5617,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -8,
                                  "src": "24112:9:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 5625,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "24112:86:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 5616,
                              "name": "_toEthSignedMessage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6446,
                              "src": "24092:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function (bytes32) pure returns (bytes memory)"
                              }
                            },
                            "id": 5626,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "24092:107:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5627,
                            "name": "_authorizationSign",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5475,
                            "src": "24204:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 5596,
                          "name": "_checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            6674,
                            6757
                          ],
                          "referencedDeclaration": 6757,
                          "src": "23965:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                          }
                        },
                        "id": 5628,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23965:261:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5595,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23957:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5629,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23957:270:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5630,
                  "nodeType": "ExpressionStatement",
                  "src": "23957:270:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5651,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5637,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5632,
                            "name": "_enclaveChallenge",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5471,
                            "src": "24269:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 5635,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "24298:1:19",
                                "subdenomination": null,
                                "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": 5634,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "24290:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5633,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "24290:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 5636,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "24290:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "24269:31:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5639,
                              "name": "_enclaveChallenge",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5471,
                              "src": "24324:17:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 5644,
                                          "name": "resultHash",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5539,
                                          "src": "24398:10:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "id": 5645,
                                          "name": "resultSeal",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5549,
                                          "src": "24414:10:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 5642,
                                          "name": "abi",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": -1,
                                          "src": "24376:3:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_magic_abi",
                                            "typeString": "abi"
                                          }
                                        },
                                        "id": 5643,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberName": "encodePacked",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "24376:16:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                          "typeString": "function () pure returns (bytes memory)"
                                        }
                                      },
                                      "id": 5646,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "24376:53:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 5641,
                                    "name": "keccak256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": -8,
                                    "src": "24366:9:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 5647,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "24366:64:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 5640,
                                "name": "_toEthSignedMessage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6446,
                                "src": "24346:19:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function (bytes32) pure returns (bytes memory)"
                                }
                              },
                              "id": 5648,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "24346:85:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 5649,
                              "name": "_enclaveSign",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5473,
                              "src": "24436:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 5638,
                            "name": "_checkSignature",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              6674,
                              6757
                            ],
                            "referencedDeclaration": 6757,
                            "src": "24304:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                              "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                            }
                          },
                          "id": 5650,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24304:148:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "24269:183:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5631,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "24261:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5652,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24261:192:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5653,
                  "nodeType": "ExpressionStatement",
                  "src": "24261:192:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5654,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5490,
                        "src": "24458:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5656,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 370,
                      "src": "24458:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5657,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "24490:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5658,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "ContributionStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 368,
                        "src": "24490:38:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                          "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                        }
                      },
                      "id": 5659,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "24490:45:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "src": "24458:77:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                      "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                    }
                  },
                  "id": 5661,
                  "nodeType": "ExpressionStatement",
                  "src": "24458:77:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5666,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5662,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5490,
                        "src": "24539:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5664,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 372,
                      "src": "24539:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5665,
                      "name": "resultHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5539,
                      "src": "24571:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24539:42:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5667,
                  "nodeType": "ExpressionStatement",
                  "src": "24539:42:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5668,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5490,
                        "src": "24585:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5670,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultSeal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 374,
                      "src": "24585:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5671,
                      "name": "resultSeal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5549,
                      "src": "24617:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24585:42:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5673,
                  "nodeType": "ExpressionStatement",
                  "src": "24585:42:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5674,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5490,
                        "src": "24631:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5676,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "enclaveChallenge",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 376,
                      "src": "24631:29:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5677,
                      "name": "_enclaveChallenge",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5471,
                      "src": "24663:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "24631:49:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 5679,
                  "nodeType": "ExpressionStatement",
                  "src": "24631:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5686,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5680,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24685:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5682,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 328,
                      "src": "24685:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5683,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "24717:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5684,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "TaskStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 326,
                        "src": "24717:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                          "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                        }
                      },
                      "id": 5685,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "COMPLETED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "24717:40:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "src": "24685:72:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                      "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                    }
                  },
                  "id": 5687,
                  "nodeType": "ExpressionStatement",
                  "src": "24685:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5693,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5688,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24761:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5690,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "consensusValue",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 342,
                      "src": "24761:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5691,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5490,
                        "src": "24793:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5692,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "resultHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 372,
                      "src": "24793:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24761:55:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5694,
                  "nodeType": "ExpressionStatement",
                  "src": "24761:55:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5695,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24820:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5697,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealDeadline",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 338,
                      "src": "24820:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5704,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "24896:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5701,
                              "name": "REVEAL_DEADLINE_RATIO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 204,
                              "src": "24869:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5698,
                                "name": "task",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5482,
                                "src": "24852:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                }
                              },
                              "id": 5699,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeref",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 334,
                              "src": "24852:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 5700,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "mul",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10423,
                            "src": "24852:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 5702,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24852:39:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5703,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "24852:43:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5705,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24852:48:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "24820:80:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5707,
                  "nodeType": "ExpressionStatement",
                  "src": "24820:80:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5708,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24904:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5710,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealCounter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 344,
                      "src": "24904:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 5711,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "24936:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "24904:33:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5713,
                  "nodeType": "ExpressionStatement",
                  "src": "24904:33:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5718,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5714,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24941:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5716,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "winnerCounter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 346,
                      "src": "24941:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 5717,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "24973:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "24941:33:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5719,
                  "nodeType": "ExpressionStatement",
                  "src": "24941:33:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5724,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5720,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24978:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5722,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultDigest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 351,
                      "src": "24978:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5723,
                      "name": "_resultDigest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5467,
                      "src": "25010:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24978:45:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5725,
                  "nodeType": "ExpressionStatement",
                  "src": "24978:45:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5726,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "25027:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5728,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "results",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 353,
                      "src": "25027:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5729,
                      "name": "_results",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5469,
                      "src": "25059:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "25027:40:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 5731,
                  "nodeType": "ExpressionStatement",
                  "src": "25027:40:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5737,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "25094:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 5738,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25094:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5732,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5482,
                          "src": "25071:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5735,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "25071:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 5736,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "25071:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 5739,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25071:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5740,
                  "nodeType": "ExpressionStatement",
                  "src": "25071:36:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5742,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5482,
                          "src": "25124:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5743,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "25124:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5744,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25137:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5741,
                      "name": "successWork",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3549,
                      "src": "25112:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5745,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25112:33:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5746,
                  "nodeType": "ExpressionStatement",
                  "src": "25112:33:19"
                },
                {
                  "assignments": [
                    5748
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5748,
                      "mutability": "mutable",
                      "name": "workerReward",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "25193:20:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5747,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "25193:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5762,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5758,
                              "name": "deal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5501,
                              "src": "25269:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                "typeString": "struct IexecLibCore_v5.Deal memory"
                              }
                            },
                            "id": 5759,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "schedulerRewardRatio",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 319,
                            "src": "25269:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "313030",
                                "id": 5755,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "25260:3:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_100_by_1",
                                  "typeString": "int_const 100"
                                },
                                "value": "100"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_100_by_1",
                                  "typeString": "int_const 100"
                                }
                              ],
                              "id": 5754,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "25252:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 5753,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "25252:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 5756,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "25252:12:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 5757,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sub",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10389,
                          "src": "25252:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 5760,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25252:43:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5749,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5501,
                            "src": "25219:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 5750,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "25219:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                            "typeString": "struct IexecLibCore_v5.Resource memory"
                          }
                        },
                        "id": 5751,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "25219:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 5752,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "percentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10543,
                      "src": "25219:32:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 5761,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25219:77:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25193:103:19"
                },
                {
                  "assignments": [
                    5764
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5764,
                      "mutability": "mutable",
                      "name": "schedulerReward",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "25300:23:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5763,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "25300:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5771,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5769,
                        "name": "workerReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5748,
                        "src": "25352:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5765,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5501,
                            "src": "25326:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 5766,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "25326:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                            "typeString": "struct IexecLibCore_v5.Resource memory"
                          }
                        },
                        "id": 5767,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "25326:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 5768,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10389,
                      "src": "25326:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 5770,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25326:39:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25300:65:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5773,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "25391:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 5774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25391:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5775,
                        "name": "workerReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5748,
                        "src": "25405:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5776,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25419:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5772,
                      "name": "rewardForContribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3374,
                      "src": "25369:21:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 5777,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25369:58:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5778,
                  "nodeType": "ExpressionStatement",
                  "src": "25369:58:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5780,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5482,
                          "src": "25451:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5781,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "25451:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5782,
                        "name": "schedulerReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5764,
                        "src": "25464:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5783,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25481:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5779,
                      "name": "rewardForScheduling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3413,
                      "src": "25431:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,uint256,bytes32)"
                      }
                    },
                    "id": 5784,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25431:58:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5785,
                  "nodeType": "ExpressionStatement",
                  "src": "25431:58:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5787,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25514:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5788,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "25523:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 5789,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25523:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5790,
                        "name": "resultHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5539,
                        "src": "25537:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5786,
                      "name": "TaskContribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7531,
                      "src": "25499:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32)"
                      }
                    },
                    "id": 5791,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25499:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5792,
                  "nodeType": "EmitStatement",
                  "src": "25494:54:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5794,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25571:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5795,
                        "name": "resultHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5539,
                        "src": "25580:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5793,
                      "name": "TaskConsensus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7537,
                      "src": "25557:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5796,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25557:34:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5797,
                  "nodeType": "EmitStatement",
                  "src": "25552:39:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5799,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25611:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5800,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "25620:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 5801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25620:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5802,
                        "name": "_resultDigest",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5467,
                        "src": "25634:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5798,
                      "name": "TaskReveal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7545,
                      "src": "25600:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32)"
                      }
                    },
                    "id": 5803,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25600:48:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5804,
                  "nodeType": "EmitStatement",
                  "src": "25595:53:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5806,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25670:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5807,
                        "name": "_results",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5469,
                        "src": "25679:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5805,
                      "name": "TaskFinalize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7555,
                      "src": "25657:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,bytes memory)"
                      }
                    },
                    "id": 5808,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25657:31:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5809,
                  "nodeType": "EmitStatement",
                  "src": "25652:36:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5811,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25709:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5812,
                        "name": "_results",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5469,
                        "src": "25718:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5810,
                      "name": "executeCallback",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6243,
                      "src": "25693:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,bytes memory)"
                      }
                    },
                    "id": 5813,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25693:34:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5814,
                  "nodeType": "ExpressionStatement",
                  "src": "25693:34:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "ec52107d",
            "id": 5816,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contributeAndFinalize",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5477,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "22850:8:19"
            },
            "parameters": {
              "id": 5476,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5465,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22667:20:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5464,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22667:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5467,
                  "mutability": "mutable",
                  "name": "_resultDigest",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22691:26:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5466,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22691:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5469,
                  "mutability": "mutable",
                  "name": "_results",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22721:21:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5468,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22721:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5471,
                  "mutability": "mutable",
                  "name": "_enclaveChallenge",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22746:30:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5470,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22746:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5473,
                  "mutability": "mutable",
                  "name": "_enclaveSign",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22780:25:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5472,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22780:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5475,
                  "mutability": "mutable",
                  "name": "_authorizationSign",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22809:31:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5474,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22809:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22663:178:19"
            },
            "returnParameters": {
              "id": 5478,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22860:0:19"
            },
            "scope": 6368,
            "src": "22633:3098:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5963,
              "nodeType": "Block",
              "src": "26079:1547:19",
              "statements": [
                {
                  "assignments": [
                    5827
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5827,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5963,
                      "src": "26083:38:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5826,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "26083:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5831,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5828,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "26129:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5830,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5829,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5819,
                      "src": "26137:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "26129:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "26083:62:19"
                },
                {
                  "assignments": [
                    5835
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5835,
                      "mutability": "mutable",
                      "name": "consensus",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5963,
                      "src": "26149:43:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Consensus"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5834,
                        "name": "IexecLibCore_v5.Consensus",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 363,
                        "src": "26149:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5839,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5836,
                      "name": "m_consensus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 244,
                      "src": "26195:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Consensus_$363_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Consensus storage ref)"
                      }
                    },
                    "id": 5838,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5837,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5819,
                      "src": "26207:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "26195:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Consensus_$363_storage",
                      "typeString": "struct IexecLibCore_v5.Consensus storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "26149:66:19"
                },
                {
                  "assignments": [
                    5841
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5841,
                      "mutability": "mutable",
                      "name": "trust",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5963,
                      "src": "26220:13:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5840,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "26220:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5847,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5842,
                        "name": "m_deals",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 236,
                        "src": "26236:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                          "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                        }
                      },
                      "id": 5845,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5843,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5827,
                          "src": "26244:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5844,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "26244:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "26236:20:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_storage",
                        "typeString": "struct IexecLibCore_v5.Deal storage ref"
                      }
                    },
                    "id": 5846,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "trust",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 297,
                    "src": "26236:26:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "26220:42:19"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5863,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5853,
                          "name": "trust",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5841,
                          "src": "26765:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5848,
                              "name": "consensus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5835,
                              "src": "26733:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                              }
                            },
                            "id": 5849,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "group",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 360,
                            "src": "26733:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 5851,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5850,
                            "name": "_consensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5821,
                            "src": "26749:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "26733:27:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5852,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mul",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10423,
                        "src": "26733:31:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5854,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "26733:38:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 5860,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "26804:1:19",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 5858,
                              "name": "trust",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5841,
                              "src": "26794:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 5859,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sub",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10389,
                            "src": "26794:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 5861,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "26794:12:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5855,
                            "name": "consensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5835,
                            "src": "26774:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                            }
                          },
                          "id": 5856,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "total",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 362,
                          "src": "26774:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mul",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10423,
                        "src": "26774:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5862,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "26774:33:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "26733:74:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5962,
                  "nodeType": "IfStatement",
                  "src": "26729:894:19",
                  "trueBody": {
                    "id": 5961,
                    "nodeType": "Block",
                    "src": "26811:812:19",
                    "statements": [
                      {
                        "assignments": [
                          5865
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5865,
                            "mutability": "mutable",
                            "name": "winnerCounter",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 5961,
                            "src": "26864:21:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5864,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "26864:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5867,
                        "initialValue": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5866,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "26888:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "26864:25:19"
                      },
                      {
                        "body": {
                          "id": 5915,
                          "nodeType": "Block",
                          "src": "26952:321:19",
                          "statements": [
                            {
                              "assignments": [
                                5881
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 5881,
                                  "mutability": "mutable",
                                  "name": "w",
                                  "nodeType": "VariableDeclaration",
                                  "overrides": null,
                                  "scope": 5915,
                                  "src": "26958:9:19",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  "typeName": {
                                    "id": 5880,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "26958:7:19",
                                    "stateMutability": "nonpayable",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 5886,
                              "initialValue": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 5882,
                                    "name": "task",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5827,
                                    "src": "26970:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                      "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                    }
                                  },
                                  "id": 5883,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "contributors",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 349,
                                  "src": "26970:17:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                    "typeString": "address[] storage ref"
                                  }
                                },
                                "id": 5885,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5884,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5869,
                                  "src": "26988:1:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "26970:20:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "26958:32:19"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "id": 5905,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 5894,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 5887,
                                          "name": "m_contributions",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 250,
                                          "src": "27010:15:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                            "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                                          }
                                        },
                                        "id": 5889,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 5888,
                                          "name": "_taskid",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5819,
                                          "src": "27026:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "27010:24:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                                          "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                                        }
                                      },
                                      "id": 5891,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 5890,
                                        "name": "w",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5881,
                                        "src": "27035:1:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "27010:27:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Contribution_$379_storage",
                                        "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                                      }
                                    },
                                    "id": 5892,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "resultHash",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 372,
                                    "src": "27010:38:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "id": 5893,
                                    "name": "_consensus",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5821,
                                    "src": "27052:10:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "27010:52:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "&&",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                    "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                  },
                                  "id": 5904,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 5895,
                                          "name": "m_contributions",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 250,
                                          "src": "27076:15:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                            "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                                          }
                                        },
                                        "id": 5897,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 5896,
                                          "name": "_taskid",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5819,
                                          "src": "27092:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "27076:24:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                                          "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                                        }
                                      },
                                      "id": 5899,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 5898,
                                        "name": "w",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5881,
                                        "src": "27101:1:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "27076:27:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Contribution_$379_storage",
                                        "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                                      }
                                    },
                                    "id": 5900,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "status",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 370,
                                    "src": "27076:34:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                      "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 5901,
                                        "name": "IexecLibCore_v5",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 380,
                                        "src": "27114:15:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                          "typeString": "type(library IexecLibCore_v5)"
                                        }
                                      },
                                      "id": 5902,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "ContributionStatusEnum",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 368,
                                      "src": "27114:38:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                                        "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                                      }
                                    },
                                    "id": 5903,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberName": "CONTRIBUTED",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "27114:50:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                      "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                    }
                                  },
                                  "src": "27076:88:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "src": "27010:154:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 5914,
                              "nodeType": "IfStatement",
                              "src": "26996:272:19",
                              "trueBody": {
                                "id": 5913,
                                "nodeType": "Block",
                                "src": "27218:50:19",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5911,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 5906,
                                        "name": "winnerCounter",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5865,
                                        "src": "27225:13:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 5909,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "27259:1:19",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 5907,
                                            "name": "winnerCounter",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5865,
                                            "src": "27241:13:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 5908,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "add",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 10364,
                                          "src": "27241:17:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                          }
                                        },
                                        "id": 5910,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27241:20:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "27225:36:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 5912,
                                    "nodeType": "ExpressionStatement",
                                    "src": "27225:36:19"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5872,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5869,
                            "src": "26914:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5873,
                                "name": "task",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5827,
                                "src": "26918:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                }
                              },
                              "id": 5874,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "contributors",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 349,
                              "src": "26918:17:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 5875,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "26918:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "26914:28:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 5916,
                        "initializationExpression": {
                          "assignments": [
                            5869
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 5869,
                              "mutability": "mutable",
                              "name": "i",
                              "nodeType": "VariableDeclaration",
                              "overrides": null,
                              "scope": 5916,
                              "src": "26899:9:19",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 5868,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "26899:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "value": null,
                              "visibility": "internal"
                            }
                          ],
                          "id": 5871,
                          "initialValue": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 5870,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "26911:1:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "26899:13:19"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 5878,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": true,
                            "src": "26944:3:19",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 5877,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5869,
                              "src": "26946:1:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 5879,
                          "nodeType": "ExpressionStatement",
                          "src": "26944:3:19"
                        },
                        "nodeType": "ForStatement",
                        "src": "26894:379:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5923,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5917,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5827,
                              "src": "27331:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5919,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 328,
                            "src": "27331:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5920,
                                "name": "IexecLibCore_v5",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 380,
                                "src": "27353:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                  "typeString": "type(library IexecLibCore_v5)"
                                }
                              },
                              "id": 5921,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "TaskStatusEnum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 326,
                              "src": "27353:30:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                                "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                              }
                            },
                            "id": 5922,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "REVEALING",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "27353:40:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "src": "27331:62:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "id": 5924,
                        "nodeType": "ExpressionStatement",
                        "src": "27331:62:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5929,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5925,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5827,
                              "src": "27398:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5927,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "consensusValue",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 342,
                            "src": "27398:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 5928,
                            "name": "_consensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5821,
                            "src": "27420:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "27398:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 5930,
                        "nodeType": "ExpressionStatement",
                        "src": "27398:32:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5942,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5931,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5827,
                              "src": "27435:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5933,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "revealDeadline",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 338,
                            "src": "27435:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5940,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -17,
                                "src": "27501:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 5937,
                                    "name": "REVEAL_DEADLINE_RATIO",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 204,
                                    "src": "27474:21:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5934,
                                      "name": "task",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5827,
                                      "src": "27457:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                        "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                      }
                                    },
                                    "id": 5935,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "timeref",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 334,
                                    "src": "27457:12:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 5936,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "mul",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10423,
                                  "src": "27457:16:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 5938,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "27457:39:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5939,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10364,
                              "src": "27457:43:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 5941,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "27457:48:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "27435:70:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5943,
                        "nodeType": "ExpressionStatement",
                        "src": "27435:70:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5948,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5944,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5827,
                              "src": "27510:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5946,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "revealCounter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 344,
                            "src": "27510:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 5947,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "27532:1:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "27510:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5949,
                        "nodeType": "ExpressionStatement",
                        "src": "27510:23:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5954,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5950,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5827,
                              "src": "27538:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5952,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "winnerCounter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 346,
                            "src": "27538:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 5953,
                            "name": "winnerCounter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5865,
                            "src": "27560:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "27538:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5955,
                        "nodeType": "ExpressionStatement",
                        "src": "27538:35:19"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5957,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5819,
                              "src": "27598:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 5958,
                              "name": "_consensus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5821,
                              "src": "27607:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 5956,
                            "name": "TaskConsensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7537,
                            "src": "27584:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32,bytes32)"
                            }
                          },
                          "id": 5959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "27584:34:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5960,
                        "nodeType": "EmitStatement",
                        "src": "27579:39:19"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 5817,
              "nodeType": "StructuredDocumentation",
              "src": "25734:233:19",
              "text": "*************************************************************************\n                      Internal Consensus methods                        ***************************************************************************"
            },
            "id": 5964,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "checkConsensus",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 5822,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5819,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5964,
                  "src": "26029:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5818,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "26029:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5821,
                  "mutability": "mutable",
                  "name": "_consensus",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5964,
                  "src": "26048:18:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5820,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "26048:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "26025:42:19"
            },
            "returnParameters": {
              "id": 5823,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "26079:0:19"
            },
            "scope": 6368,
            "src": "26002:1624:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6189,
              "nodeType": "Block",
              "src": "27717:2867:19",
              "statements": [
                {
                  "assignments": [
                    5972
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5972,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6189,
                      "src": "27721:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5971,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "27721:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5976,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5973,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "27757:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5975,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5974,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5966,
                      "src": "27765:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "27757:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27721:52:19"
                },
                {
                  "assignments": [
                    5980
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5980,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6189,
                      "src": "27777:33:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5979,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "27777:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5985,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5981,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "27813:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 5984,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5982,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5972,
                        "src": "27821:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5983,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dealid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 330,
                      "src": "27821:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "27813:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27777:56:19"
                },
                {
                  "assignments": [
                    5987
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5987,
                      "mutability": "mutable",
                      "name": "totalLogWeight",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6189,
                      "src": "27838:22:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5986,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "27838:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5989,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 5988,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "27863:1:19",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27838:26:19"
                },
                {
                  "assignments": [
                    5991
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5991,
                      "mutability": "mutable",
                      "name": "totalReward",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6189,
                      "src": "27868:19:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5990,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "27868:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5995,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5992,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5980,
                        "src": "27893:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal memory"
                        }
                      },
                      "id": 5993,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "workerpool",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 295,
                      "src": "27893:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Resource memory"
                      }
                    },
                    "id": 5994,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "price",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 288,
                    "src": "27893:21:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27868:46:19"
                },
                {
                  "body": {
                    "id": 6050,
                    "nodeType": "Block",
                    "src": "27976:478:19",
                    "statements": [
                      {
                        "assignments": [
                          6009
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6009,
                            "mutability": "mutable",
                            "name": "worker",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 6050,
                            "src": "27981:43:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 6008,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "27981:7:19",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6014,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6010,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5972,
                              "src": "28033:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 6011,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contributors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 349,
                            "src": "28033:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 6013,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6012,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5997,
                            "src": "28051:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "28033:20:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "27981:72:19"
                      },
                      {
                        "assignments": [
                          6018
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6018,
                            "mutability": "mutable",
                            "name": "contribution",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 6050,
                            "src": "28058:49:19",
                            "stateVariable": false,
                            "storageLocation": "storage",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 6017,
                              "name": "IexecLibCore_v5.Contribution",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 379,
                              "src": "28058:28:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Contribution"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6024,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6019,
                              "name": "m_contributions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 250,
                              "src": "28110:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                              }
                            },
                            "id": 6021,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6020,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5966,
                              "src": "28126:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "28110:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                              "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                            }
                          },
                          "id": 6023,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6022,
                            "name": "worker",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6009,
                            "src": "28135:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "28110:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Contribution_$379_storage",
                            "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28058:84:19"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          },
                          "id": 6030,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6025,
                              "name": "contribution",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6018,
                              "src": "28152:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                              }
                            },
                            "id": 6026,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 370,
                            "src": "28152:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                              "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 6027,
                                "name": "IexecLibCore_v5",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 380,
                                "src": "28175:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                  "typeString": "type(library IexecLibCore_v5)"
                                }
                              },
                              "id": 6028,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "ContributionStatusEnum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 368,
                              "src": "28175:38:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                                "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                              }
                            },
                            "id": 6029,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "PROVED",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "28175:45:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                              "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                            }
                          },
                          "src": "28152:68:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 6048,
                          "nodeType": "Block",
                          "src": "28391:59:19",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6046,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6040,
                                  "name": "totalReward",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5991,
                                  "src": "28397:11:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 6043,
                                        "name": "deal",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5980,
                                        "src": "28427:4:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                          "typeString": "struct IexecLibCore_v5.Deal memory"
                                        }
                                      },
                                      "id": 6044,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "workerStake",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 317,
                                      "src": "28427:16:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6041,
                                      "name": "totalReward",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5991,
                                      "src": "28411:11:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6042,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 10364,
                                    "src": "28411:15:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 6045,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "28411:33:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "28397:47:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6047,
                              "nodeType": "ExpressionStatement",
                              "src": "28397:47:19"
                            }
                          ]
                        },
                        "id": 6049,
                        "nodeType": "IfStatement",
                        "src": "28148:302:19",
                        "trueBody": {
                          "id": 6039,
                          "nodeType": "Block",
                          "src": "28225:68:19",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6037,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6031,
                                  "name": "totalLogWeight",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5987,
                                  "src": "28231:14:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 6034,
                                        "name": "contribution",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6018,
                                        "src": "28267:12:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                                        }
                                      },
                                      "id": 6035,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "weight",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 378,
                                      "src": "28267:19:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6032,
                                      "name": "totalLogWeight",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5987,
                                      "src": "28248:14:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6033,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 10364,
                                    "src": "28248:18:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 6036,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "28248:39:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "28231:56:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6038,
                              "nodeType": "ExpressionStatement",
                              "src": "28231:56:19"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6004,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6000,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5997,
                      "src": "27939:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6001,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5972,
                          "src": "27943:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 6002,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "27943:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 6003,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "27943:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "27939:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6051,
                  "initializationExpression": {
                    "assignments": [
                      5997
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5997,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 6051,
                        "src": "27924:9:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5996,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "27924:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 5999,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5998,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "27936:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "27924:13:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6006,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "27969:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6005,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5997,
                        "src": "27971:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6007,
                    "nodeType": "ExpressionStatement",
                    "src": "27969:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "27919:535:19"
                },
                {
                  "assignments": [
                    6053
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6053,
                      "mutability": "mutable",
                      "name": "workersReward",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6189,
                      "src": "28504:21:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6052,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28504:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6065,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6061,
                              "name": "deal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5980,
                              "src": "28568:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                "typeString": "struct IexecLibCore_v5.Deal memory"
                              }
                            },
                            "id": 6062,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "schedulerRewardRatio",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 319,
                            "src": "28568:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "313030",
                                "id": 6058,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "28559:3:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_100_by_1",
                                  "typeString": "int_const 100"
                                },
                                "value": "100"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_100_by_1",
                                  "typeString": "int_const 100"
                                }
                              ],
                              "id": 6057,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "28551:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 6056,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "28551:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 6059,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "28551:12:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 6060,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sub",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10389,
                          "src": "28551:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 6063,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "28551:43:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6054,
                        "name": "totalReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5991,
                        "src": "28528:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 6055,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "percentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10543,
                      "src": "28528:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 6064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28528:67:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28504:91:19"
                },
                {
                  "body": {
                    "id": 6180,
                    "nodeType": "Block",
                    "src": "28657:1816:19",
                    "statements": [
                      {
                        "assignments": [
                          6079
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6079,
                            "mutability": "mutable",
                            "name": "worker",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 6180,
                            "src": "28662:43:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 6078,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "28662:7:19",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6084,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6080,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5972,
                              "src": "28714:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 6081,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contributors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 349,
                            "src": "28714:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 6083,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6082,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6067,
                            "src": "28732:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "28714:20:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28662:72:19"
                      },
                      {
                        "assignments": [
                          6088
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6088,
                            "mutability": "mutable",
                            "name": "contribution",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 6180,
                            "src": "28739:49:19",
                            "stateVariable": false,
                            "storageLocation": "storage",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 6087,
                              "name": "IexecLibCore_v5.Contribution",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 379,
                              "src": "28739:28:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Contribution"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6094,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6089,
                              "name": "m_contributions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 250,
                              "src": "28791:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                              }
                            },
                            "id": 6091,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6090,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5966,
                              "src": "28807:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "28791:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                              "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                            }
                          },
                          "id": 6093,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6092,
                            "name": "worker",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6079,
                            "src": "28816:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "28791:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Contribution_$379_storage",
                            "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28739:84:19"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          },
                          "id": 6100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6095,
                              "name": "contribution",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6088,
                              "src": "28833:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                              }
                            },
                            "id": 6096,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 370,
                            "src": "28833:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                              "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 6097,
                                "name": "IexecLibCore_v5",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 380,
                                "src": "28856:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                  "typeString": "type(library IexecLibCore_v5)"
                                }
                              },
                              "id": 6098,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "ContributionStatusEnum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 368,
                              "src": "28856:38:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                                "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                              }
                            },
                            "id": 6099,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "PROVED",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "28856:45:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                              "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                            }
                          },
                          "src": "28833:68:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 6178,
                          "nodeType": "Block",
                          "src": "29837:632:19",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6154,
                                      "name": "task",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5972,
                                      "src": "29878:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                        "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                      }
                                    },
                                    "id": 6155,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "dealid",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 330,
                                    "src": "29878:11:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6156,
                                    "name": "worker",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6079,
                                    "src": "29891:6:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6157,
                                    "name": "_taskid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5966,
                                    "src": "29899:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 6153,
                                  "name": "seizeContribution",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3393,
                                  "src": "29860:17:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$returns$__$",
                                    "typeString": "function (bytes32,address,bytes32)"
                                  }
                                },
                                "id": 6158,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "29860:47:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6159,
                              "nodeType": "ExpressionStatement",
                              "src": "29860:47:19"
                            },
                            {
                              "id": 6177,
                              "nodeType": "Block",
                              "src": "29952:512:19",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 6170,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 6160,
                                        "name": "m_workerScores",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 254,
                                        "src": "30344:14:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                          "typeString": "mapping(address => uint256)"
                                        }
                                      },
                                      "id": 6162,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 6161,
                                        "name": "worker",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6079,
                                        "src": "30359:6:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "nodeType": "IndexAccess",
                                      "src": "30344:22:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "32",
                                          "id": 6167,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "30406:1:19",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_2_by_1",
                                            "typeString": "int_const 2"
                                          },
                                          "value": "2"
                                        },
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "33",
                                          "id": 6168,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "30408:1:19",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_3_by_1",
                                            "typeString": "int_const 3"
                                          },
                                          "value": "3"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_rational_2_by_1",
                                            "typeString": "int_const 2"
                                          },
                                          {
                                            "typeIdentifier": "t_rational_3_by_1",
                                            "typeString": "int_const 3"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 6163,
                                            "name": "m_workerScores",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 254,
                                            "src": "30369:14:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                              "typeString": "mapping(address => uint256)"
                                            }
                                          },
                                          "id": 6165,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 6164,
                                            "name": "worker",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6079,
                                            "src": "30384:6:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "30369:22:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 6166,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "mulByFraction",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 10526,
                                        "src": "30369:36:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                          "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                                        }
                                      },
                                      "id": 6169,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "30369:41:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "30344:66:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 6171,
                                  "nodeType": "ExpressionStatement",
                                  "src": "30344:66:19"
                                },
                                {
                                  "eventCall": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 6173,
                                        "name": "worker",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6079,
                                        "src": "30441:6:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 6174,
                                        "name": "_taskid",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5966,
                                        "src": "30449:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 6172,
                                      "name": "FaultyContribution",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7571,
                                      "src": "30422:18:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                                        "typeString": "function (address,bytes32)"
                                      }
                                    },
                                    "id": 6175,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "30422:35:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 6176,
                                  "nodeType": "EmitStatement",
                                  "src": "30417:40:19"
                                }
                              ]
                            }
                          ]
                        },
                        "id": 6179,
                        "nodeType": "IfStatement",
                        "src": "28829:1640:19",
                        "trueBody": {
                          "id": 6152,
                          "nodeType": "Block",
                          "src": "28906:836:19",
                          "statements": [
                            {
                              "assignments": [
                                6102
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 6102,
                                  "mutability": "mutable",
                                  "name": "workerReward",
                                  "nodeType": "VariableDeclaration",
                                  "overrides": null,
                                  "scope": 6152,
                                  "src": "28912:20:19",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 6101,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "28912:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 6109,
                              "initialValue": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6105,
                                      "name": "contribution",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6088,
                                      "src": "28963:12:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                        "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                                      }
                                    },
                                    "id": 6106,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "weight",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 378,
                                    "src": "28963:19:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6107,
                                    "name": "totalLogWeight",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5987,
                                    "src": "28984:14:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 6103,
                                    "name": "workersReward",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6053,
                                    "src": "28935:13:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 6104,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "mulByFraction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10526,
                                  "src": "28935:27:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 6108,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "28935:64:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "28912:87:19"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6115,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6110,
                                  "name": "totalReward",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5991,
                                  "src": "29005:11:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6113,
                                      "name": "workerReward",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6102,
                                      "src": "29044:12:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6111,
                                      "name": "totalReward",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5991,
                                      "src": "29028:11:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6112,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sub",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 10389,
                                    "src": "29028:15:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 6114,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "29028:29:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "29005:52:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6116,
                              "nodeType": "ExpressionStatement",
                              "src": "29005:52:19"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6118,
                                      "name": "task",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5972,
                                      "src": "29083:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                        "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                      }
                                    },
                                    "id": 6119,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "dealid",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 330,
                                    "src": "29083:11:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6120,
                                    "name": "worker",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6079,
                                    "src": "29096:6:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 6117,
                                  "name": "unlockContribution",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3358,
                                  "src": "29064:18:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                                    "typeString": "function (bytes32,address)"
                                  }
                                },
                                "id": 6121,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "29064:39:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6122,
                              "nodeType": "ExpressionStatement",
                              "src": "29064:39:19"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6124,
                                    "name": "worker",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6079,
                                    "src": "29131:6:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6125,
                                    "name": "workerReward",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6102,
                                    "src": "29139:12:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6126,
                                    "name": "_taskid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5966,
                                    "src": "29153:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 6123,
                                  "name": "rewardForContribution",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3374,
                                  "src": "29109:21:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                                    "typeString": "function (address,uint256,bytes32)"
                                  }
                                },
                                "id": 6127,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "29109:52:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6128,
                              "nodeType": "ExpressionStatement",
                              "src": "29109:52:19"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 6133,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6129,
                                      "name": "task",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5972,
                                      "src": "29215:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                        "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                      }
                                    },
                                    "id": 6130,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "contributors",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 349,
                                    "src": "29215:17:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                      "typeString": "address[] storage ref"
                                    }
                                  },
                                  "id": 6131,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "29215:24:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 6132,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "29242:1:19",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "29215:28:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 6151,
                              "nodeType": "IfStatement",
                              "src": "29211:526:19",
                              "trueBody": {
                                "id": 6150,
                                "nodeType": "Block",
                                "src": "29249:488:19",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6143,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 6134,
                                          "name": "m_workerScores",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 254,
                                          "src": "29627:14:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                            "typeString": "mapping(address => uint256)"
                                          }
                                        },
                                        "id": 6136,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 6135,
                                          "name": "worker",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6079,
                                          "src": "29642:6:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "29627:22:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 6141,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "29679:1:19",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "id": 6137,
                                              "name": "m_workerScores",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 254,
                                              "src": "29652:14:19",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                              }
                                            },
                                            "id": 6139,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "id": 6138,
                                              "name": "worker",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6079,
                                              "src": "29667:6:19",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "29652:22:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 6140,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "add",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 10364,
                                          "src": "29652:26:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                          }
                                        },
                                        "id": 6142,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "29652:29:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "29627:54:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6144,
                                    "nodeType": "ExpressionStatement",
                                    "src": "29627:54:19"
                                  },
                                  {
                                    "eventCall": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 6146,
                                          "name": "worker",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6079,
                                          "src": "29714:6:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "id": 6147,
                                          "name": "_taskid",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5966,
                                          "src": "29722:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          },
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 6145,
                                        "name": "AccurateContribution",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7565,
                                        "src": "29693:20:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                                          "typeString": "function (address,bytes32)"
                                        }
                                      },
                                      "id": 6148,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "29693:37:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 6149,
                                    "nodeType": "EmitStatement",
                                    "src": "29688:42:19"
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6074,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6070,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6067,
                      "src": "28620:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6071,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5972,
                          "src": "28624:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 6072,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "28624:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 6073,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "28624:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "28620:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6181,
                  "initializationExpression": {
                    "assignments": [
                      6067
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6067,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 6181,
                        "src": "28605:9:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6066,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "28605:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 6069,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 6068,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "28617:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "28605:13:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6076,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "28650:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6075,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6067,
                        "src": "28652:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6077,
                    "nodeType": "ExpressionStatement",
                    "src": "28650:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "28600:1873:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6183,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5972,
                          "src": "30546:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 6184,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "30546:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6185,
                        "name": "totalReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5991,
                        "src": "30559:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6186,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5966,
                        "src": "30572:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 6182,
                      "name": "rewardForScheduling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3413,
                      "src": "30526:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,uint256,bytes32)"
                      }
                    },
                    "id": 6187,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30526:54:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6188,
                  "nodeType": "ExpressionStatement",
                  "src": "30526:54:19"
                }
              ]
            },
            "documentation": null,
            "id": 6190,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "distributeRewards",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 5967,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5966,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6190,
                  "src": "27689:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5965,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27689:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27688:17:19"
            },
            "returnParameters": {
              "id": 5968,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "27717:0:19"
            },
            "scope": 6368,
            "src": "27662:2922:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6242,
              "nodeType": "Block",
              "src": "30719:594:19",
              "statements": [
                {
                  "assignments": [
                    6199
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6199,
                      "mutability": "mutable",
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6242,
                      "src": "30723:14:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6198,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "30723:7:19",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6207,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6200,
                        "name": "m_deals",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 236,
                        "src": "30740:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                          "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                        }
                      },
                      "id": 6205,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6201,
                            "name": "m_tasks",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 240,
                            "src": "30748:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                              "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                            }
                          },
                          "id": 6203,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6202,
                            "name": "_taskid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6193,
                            "src": "30756:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "30748:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage",
                            "typeString": "struct IexecLibCore_v5.Task storage ref"
                          }
                        },
                        "id": 6204,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "30748:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "30740:32:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_storage",
                        "typeString": "struct IexecLibCore_v5.Deal storage ref"
                      }
                    },
                    "id": 6206,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "callback",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 307,
                    "src": "30740:41:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "30723:58:19"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 6213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6208,
                      "name": "target",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6199,
                      "src": "30789:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 6211,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "30807:1:19",
                          "subdenomination": null,
                          "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": 6210,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "30799:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 6209,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "30799:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 6212,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "30799:10:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "30789:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6241,
                  "nodeType": "IfStatement",
                  "src": "30785:525:19",
                  "trueBody": {
                    "id": 6240,
                    "nodeType": "Block",
                    "src": "30813:497:19",
                    "statements": [
                      {
                        "clauses": [
                          {
                            "block": {
                              "id": 6223,
                              "nodeType": "Block",
                              "src": "31072:42:19",
                              "statements": []
                            },
                            "errorName": "",
                            "id": 6224,
                            "nodeType": "TryCatchClause",
                            "parameters": null,
                            "src": "31072:42:19"
                          },
                          {
                            "block": {
                              "id": 6237,
                              "nodeType": "Block",
                              "src": "31159:147:19",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 6234,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "arguments": [],
                                          "expression": {
                                            "argumentTypes": [],
                                            "id": 6229,
                                            "name": "gasleft",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -7,
                                            "src": "31240:7:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
                                              "typeString": "function () view returns (uint256)"
                                            }
                                          },
                                          "id": 6230,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "31240:9:19",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "id": 6233,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 6231,
                                            "name": "m_callbackgas",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 258,
                                            "src": "31252:13:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "/",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3633",
                                            "id": 6232,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "31268:2:19",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_63_by_1",
                                              "typeString": "int_const 63"
                                            },
                                            "value": "63"
                                          },
                                          "src": "31252:18:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "31240:30:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      ],
                                      "id": 6228,
                                      "name": "assert",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": -3,
                                      "src": "31233:6:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                                        "typeString": "function (bool) pure"
                                      }
                                    },
                                    "id": 6235,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "31233:38:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 6236,
                                  "nodeType": "ExpressionStatement",
                                  "src": "31233:38:19"
                                }
                              ]
                            },
                            "errorName": "",
                            "id": 6238,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 6227,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 6226,
                                  "mutability": "mutable",
                                  "name": "",
                                  "nodeType": "VariableDeclaration",
                                  "overrides": null,
                                  "scope": 6238,
                                  "src": "31125:12:19",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 6225,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "31125:5:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "src": "31124:31:19"
                            },
                            "src": "31118:188:19"
                          }
                        ],
                        "externalCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6220,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6193,
                              "src": "31050:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6221,
                              "name": "_results",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6195,
                              "src": "31059:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6215,
                                    "name": "target",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6199,
                                    "src": "31008:6:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 6214,
                                  "name": "IOracleConsumer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10137,
                                  "src": "30992:15:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_IOracleConsumer_$10137_$",
                                    "typeString": "type(contract IOracleConsumer)"
                                  }
                                },
                                "id": 6216,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "30992:23:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IOracleConsumer_$10137",
                                  "typeString": "contract IOracleConsumer"
                                }
                              },
                              "id": 6217,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "receiveResult",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10136,
                              "src": "30992:37:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                                "typeString": "function (bytes32,bytes memory) external"
                              }
                            },
                            "id": 6219,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "names": [
                              "gas"
                            ],
                            "nodeType": "FunctionCallOptions",
                            "options": [
                              {
                                "argumentTypes": null,
                                "id": 6218,
                                "name": "m_callbackgas",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 258,
                                "src": "31035:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "src": "30992:57:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$gas",
                              "typeString": "function (bytes32,bytes memory) external"
                            }
                          },
                          "id": 6222,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "30992:76:19",
                          "tryCall": true,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6239,
                        "nodeType": "TryStatement",
                        "src": "30988:318:19"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 6191,
              "nodeType": "StructuredDocumentation",
              "src": "30587:54:19",
              "text": "Callback for smartcontracts using EIP1154"
            },
            "id": 6243,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "executeCallback",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 6196,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6193,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6243,
                  "src": "30668:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6192,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30668:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6195,
                  "mutability": "mutable",
                  "name": "_results",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6243,
                  "src": "30685:21:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6194,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "30685:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30667:40:19"
            },
            "returnParameters": {
              "id": 6197,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30719:0:19"
            },
            "scope": 6368,
            "src": "30643:670:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              7689
            ],
            "body": {
              "id": 6288,
              "nodeType": "Block",
              "src": "31669:149:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6257,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6247,
                            "src": "31681:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 6258,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "31681:14:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6259,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6250,
                            "src": "31699:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 6260,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "31699:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "31681:29:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6256,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "31673:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6262,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31673:38:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6263,
                  "nodeType": "ExpressionStatement",
                  "src": "31673:38:19"
                },
                {
                  "body": {
                    "id": 6284,
                    "nodeType": "Block",
                    "src": "31759:41:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6276,
                                "name": "_dealid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6247,
                                "src": "31775:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 6278,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6277,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6265,
                                "src": "31783:1:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "31775:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6279,
                                "name": "_idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6250,
                                "src": "31787:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 6281,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6280,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6265,
                                "src": "31792:1:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "31787:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6275,
                            "name": "initialize",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4717,
                            "src": "31764:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32,uint256) returns (bytes32)"
                            }
                          },
                          "id": 6282,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31764:31:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 6283,
                        "nodeType": "ExpressionStatement",
                        "src": "31764:31:19"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6271,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6268,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6265,
                      "src": "31732:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6269,
                        "name": "_dealid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6247,
                        "src": "31736:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 6270,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "31736:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "31732:18:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6285,
                  "initializationExpression": {
                    "assignments": [
                      6265
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6265,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 6285,
                        "src": "31720:6:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6264,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "31720:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 6267,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 6266,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "31729:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "31720:10:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6273,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "31752:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6272,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6265,
                        "src": "31754:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6274,
                    "nodeType": "ExpressionStatement",
                    "src": "31752:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "31715:85:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 6286,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "31810:4:19",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 6255,
                  "id": 6287,
                  "nodeType": "Return",
                  "src": "31803:11:19"
                }
              ]
            },
            "documentation": {
              "id": 6244,
              "nodeType": "StructuredDocumentation",
              "src": "31316:233:19",
              "text": "*************************************************************************\n                           Array operations                             ***************************************************************************"
            },
            "functionSelector": "b504681d",
            "id": 6289,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializeArray",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6252,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "31644:8:19"
            },
            "parameters": {
              "id": 6251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6247,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6289,
                  "src": "31579:26:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6245,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "31579:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6246,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31579:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6250,
                  "mutability": "mutable",
                  "name": "_idx",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6289,
                  "src": "31609:23:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6248,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "31609:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6249,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31609:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31575:58:19"
            },
            "returnParameters": {
              "id": 6255,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6254,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6289,
                  "src": "31662:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6253,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "31662:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31661:6:19"
            },
            "scope": 6368,
            "src": "31551:267:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7697
            ],
            "body": {
              "id": 6319,
              "nodeType": "Block",
              "src": "31907:93:19",
              "statements": [
                {
                  "body": {
                    "id": 6315,
                    "nodeType": "Block",
                    "src": "31955:27:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6310,
                                "name": "_taskid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6292,
                                "src": "31966:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 6312,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6311,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6299,
                                "src": "31974:1:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "31966:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 6309,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5463,
                            "src": "31960:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 6313,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31960:17:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6314,
                        "nodeType": "ExpressionStatement",
                        "src": "31960:17:19"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6305,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6302,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6299,
                      "src": "31928:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6303,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6292,
                        "src": "31932:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 6304,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "31932:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "31928:18:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6316,
                  "initializationExpression": {
                    "assignments": [
                      6299
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6299,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 6316,
                        "src": "31916:6:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6298,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "31916:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 6301,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 6300,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "31925:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "31916:10:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6307,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "31948:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6306,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6299,
                        "src": "31950:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6308,
                    "nodeType": "ExpressionStatement",
                    "src": "31948:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "31911:71:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 6317,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "31992:4:19",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 6297,
                  "id": 6318,
                  "nodeType": "Return",
                  "src": "31985:11:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "fa055d7e",
            "id": 6320,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "claimArray",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6294,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "31882:8:19"
            },
            "parameters": {
              "id": 6293,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6292,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6320,
                  "src": "31844:26:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6290,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "31844:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6291,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31844:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31840:31:19"
            },
            "returnParameters": {
              "id": 6297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6296,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6320,
                  "src": "31900:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6295,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "31900:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31899:6:19"
            },
            "scope": 6368,
            "src": "31821:179:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7708
            ],
            "body": {
              "id": 6366,
              "nodeType": "Block",
              "src": "32129:156:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6337,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6333,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6323,
                            "src": "32141:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 6334,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "32141:14:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6335,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6326,
                            "src": "32159:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 6336,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "32159:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "32141:29:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6332,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "32133:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6338,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "32133:38:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6339,
                  "nodeType": "ExpressionStatement",
                  "src": "32133:38:19"
                },
                {
                  "body": {
                    "id": 6362,
                    "nodeType": "Block",
                    "src": "32219:48:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6353,
                                    "name": "_dealid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6323,
                                    "src": "32241:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                      "typeString": "bytes32[] calldata"
                                    }
                                  },
                                  "id": 6355,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6354,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6341,
                                    "src": "32249:1:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "32241:10:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6356,
                                    "name": "_idx",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6326,
                                    "src": "32253:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                      "typeString": "uint256[] calldata"
                                    }
                                  },
                                  "id": 6358,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6357,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6341,
                                    "src": "32258:1:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "32253:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 6352,
                                "name": "initialize",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4717,
                                "src": "32230:10:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,uint256) returns (bytes32)"
                                }
                              },
                              "id": 6359,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "32230:31:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 6351,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5463,
                            "src": "32224:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 6360,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "32224:38:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6361,
                        "nodeType": "ExpressionStatement",
                        "src": "32224:38:19"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6347,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6344,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6341,
                      "src": "32192:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6345,
                        "name": "_dealid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6323,
                        "src": "32196:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 6346,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "32196:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "32192:18:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6363,
                  "initializationExpression": {
                    "assignments": [
                      6341
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6341,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 6363,
                        "src": "32180:6:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6340,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "32180:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 6343,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 6342,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "32189:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "32180:10:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6349,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "32212:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6348,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6341,
                        "src": "32214:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6350,
                    "nodeType": "ExpressionStatement",
                    "src": "32212:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "32175:92:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 6364,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "32277:4:19",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 6331,
                  "id": 6365,
                  "nodeType": "Return",
                  "src": "32270:11:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "f722cb32",
            "id": 6367,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializeAndClaimArray",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6328,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "32104:8:19"
            },
            "parameters": {
              "id": 6327,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6323,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6367,
                  "src": "32039:26:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6321,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "32039:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6322,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "32039:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6326,
                  "mutability": "mutable",
                  "name": "_idx",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6367,
                  "src": "32069:23:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6324,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "32069:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6325,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "32069:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32035:58:19"
            },
            "returnParameters": {
              "id": 6331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6330,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6367,
                  "src": "32122:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6329,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "32122:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32121:6:19"
            },
            "scope": 6368,
            "src": "32003:282:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 6369,
        "src": "585:31702:19"
      }
    ],
    "src": "0:32288:19"
  },
  "legacyAST": {
    "absolutePath": "/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/delegates/IexecPocoDelegate.sol",
    "exportedSymbols": {
      "IexecPocoDelegate": [
        6368
      ],
      "Matching": [
        3183
      ]
    },
    "id": 6369,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3152,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:19"
      },
      {
        "id": 3153,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "24:33:19"
      },
      {
        "absolutePath": "@iexec/solidity/contracts/ERC1154/IERC1154.sol",
        "file": "@iexec/solidity/contracts/ERC1154/IERC1154.sol",
        "id": 3154,
        "nodeType": "ImportDirective",
        "scope": 6369,
        "sourceUnit": 10146,
        "src": "59:56:19",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/delegates/IexecERC20Common.sol",
        "file": "./IexecERC20Common.sol",
        "id": 3155,
        "nodeType": "ImportDirective",
        "scope": 6369,
        "sourceUnit": 1833,
        "src": "116:32:19",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/delegates/SignatureVerifier.sol",
        "file": "./SignatureVerifier.sol",
        "id": 3156,
        "nodeType": "ImportDirective",
        "scope": 6369,
        "sourceUnit": 6807,
        "src": "149:33:19",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/DelegateBase.sol",
        "file": "../DelegateBase.sol",
        "id": 3157,
        "nodeType": "ImportDirective",
        "scope": 6369,
        "sourceUnit": 845,
        "src": "183:29:19",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/amxx/Work/iExec/code/PoCo-dev/contracts/modules/interfaces/IexecPoco.sol",
        "file": "../interfaces/IexecPoco.sol",
        "id": 3158,
        "nodeType": "ImportDirective",
        "scope": 6369,
        "sourceUnit": 7710,
        "src": "213:37:19",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "canonicalName": "Matching",
        "id": 3183,
        "members": [
          {
            "constant": false,
            "id": 3160,
            "mutability": "mutable",
            "name": "apporderStruct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "272:22:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage_ptr",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 3159,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "272:5:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3162,
            "mutability": "mutable",
            "name": "apporderHash",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "297:20:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 3161,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "297:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3164,
            "mutability": "mutable",
            "name": "appOwner",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "320:16:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3163,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "320:7:19",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3166,
            "mutability": "mutable",
            "name": "datasetorderStruct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "339:26:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage_ptr",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 3165,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "339:5:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3168,
            "mutability": "mutable",
            "name": "datasetorderHash",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "368:24:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 3167,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "368:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3170,
            "mutability": "mutable",
            "name": "datasetOwner",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "395:20:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3169,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "395:7:19",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3172,
            "mutability": "mutable",
            "name": "workerpoolorderStruct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "418:29:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage_ptr",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 3171,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "418:5:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3174,
            "mutability": "mutable",
            "name": "workerpoolorderHash",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "450:27:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 3173,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "450:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3176,
            "mutability": "mutable",
            "name": "workerpoolOwner",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "480:23:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3175,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "480:7:19",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3178,
            "mutability": "mutable",
            "name": "requestorderStruct",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "506:26:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage_ptr",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 3177,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "506:5:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3180,
            "mutability": "mutable",
            "name": "requestorderHash",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "535:24:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 3179,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "535:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3182,
            "mutability": "mutable",
            "name": "hasDataset",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 3183,
            "src": "562:18:19",
            "stateVariable": false,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 3181,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "562:4:19",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": null,
            "visibility": "internal"
          }
        ],
        "name": "Matching",
        "nodeType": "StructDefinition",
        "scope": 6369,
        "src": "253:330:19",
        "visibility": "public"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3184,
              "name": "IexecPoco",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7709,
              "src": "615:9:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecPoco_$7709",
                "typeString": "contract IexecPoco"
              }
            },
            "id": 3185,
            "nodeType": "InheritanceSpecifier",
            "src": "615:9:19"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3186,
              "name": "DelegateBase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 844,
              "src": "626:12:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DelegateBase_$844",
                "typeString": "contract DelegateBase"
              }
            },
            "id": 3187,
            "nodeType": "InheritanceSpecifier",
            "src": "626:12:19"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3188,
              "name": "IexecERC20Common",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1832,
              "src": "640:16:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecERC20Common_$1832",
                "typeString": "contract IexecERC20Common"
              }
            },
            "id": 3189,
            "nodeType": "InheritanceSpecifier",
            "src": "640:16:19"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3190,
              "name": "SignatureVerifier",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6806,
              "src": "658:17:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SignatureVerifier_$6806",
                "typeString": "contract SignatureVerifier"
              }
            },
            "id": 3191,
            "nodeType": "InheritanceSpecifier",
            "src": "658:17:19"
          }
        ],
        "contractDependencies": [
          268,
          844,
          1832,
          6806,
          7709,
          10170,
          10182,
          10752,
          10861
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 6368,
        "linearizedBaseContracts": [
          6368,
          6806,
          1832,
          844,
          10170,
          268,
          10182,
          10861,
          10752,
          7709
        ],
        "name": "IexecPocoDelegate",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 3194,
            "libraryName": {
              "contractScope": null,
              "id": 3192,
              "name": "SafeMathExtended",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10554,
              "src": "685:16:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMathExtended_$10554",
                "typeString": "library SafeMathExtended"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "679:36:19",
            "typeName": {
              "id": 3193,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "707:7:19",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 3197,
            "libraryName": {
              "contractScope": null,
              "id": 3195,
              "name": "IexecLibOrders_v5",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 815,
              "src": "723:17:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecLibOrders_v5_$815",
                "typeString": "library IexecLibOrders_v5"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "717:55:19",
            "typeName": {
              "contractScope": null,
              "id": 3196,
              "name": "IexecLibOrders_v5.AppOrder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 441,
              "src": "745:26:19",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_AppOrder_$441_storage_ptr",
                "typeString": "struct IexecLibOrders_v5.AppOrder"
              }
            }
          },
          {
            "id": 3200,
            "libraryName": {
              "contractScope": null,
              "id": 3198,
              "name": "IexecLibOrders_v5",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 815,
              "src": "780:17:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecLibOrders_v5_$815",
                "typeString": "library IexecLibOrders_v5"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "774:59:19",
            "typeName": {
              "contractScope": null,
              "id": 3199,
              "name": "IexecLibOrders_v5.DatasetOrder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 460,
              "src": "802:30:19",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_DatasetOrder_$460_storage_ptr",
                "typeString": "struct IexecLibOrders_v5.DatasetOrder"
              }
            }
          },
          {
            "id": 3203,
            "libraryName": {
              "contractScope": null,
              "id": 3201,
              "name": "IexecLibOrders_v5",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 815,
              "src": "841:17:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecLibOrders_v5_$815",
                "typeString": "library IexecLibOrders_v5"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "835:62:19",
            "typeName": {
              "contractScope": null,
              "id": 3202,
              "name": "IexecLibOrders_v5.WorkerpoolOrder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 483,
              "src": "863:33:19",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_storage_ptr",
                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder"
              }
            }
          },
          {
            "id": 3206,
            "libraryName": {
              "contractScope": null,
              "id": 3204,
              "name": "IexecLibOrders_v5",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 815,
              "src": "905:17:19",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IexecLibOrders_v5_$815",
                "typeString": "library IexecLibOrders_v5"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "899:59:19",
            "typeName": {
              "contractScope": null,
              "id": 3205,
              "name": "IexecLibOrders_v5.RequestOrder",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 516,
              "src": "927:30:19",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_RequestOrder_$516_storage_ptr",
                "typeString": "struct IexecLibOrders_v5.RequestOrder"
              }
            }
          },
          {
            "body": {
              "id": 3231,
              "nodeType": "Block",
              "src": "1287:101:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3219,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -28,
                            "src": "1309:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          ],
                          "id": 3218,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1301:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 3217,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1301:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 3220,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1301:13:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3221,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3209,
                        "src": "1316:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3222,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3211,
                        "src": "1322:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3216,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1697,
                      "src": "1291:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 3223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1291:38:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3224,
                  "nodeType": "ExpressionStatement",
                  "src": "1291:38:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3226,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3209,
                        "src": "1345:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3227,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3211,
                        "src": "1351:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3228,
                        "name": "ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3213,
                        "src": "1359:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3225,
                      "name": "Reward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7477,
                      "src": "1338:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3229,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1338:25:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3230,
                  "nodeType": "EmitStatement",
                  "src": "1333:30:19"
                }
              ]
            },
            "documentation": {
              "id": 3207,
              "nodeType": "StructuredDocumentation",
              "src": "961:233:19",
              "text": "*************************************************************************\n                       Escrow methods: internal                         ***************************************************************************"
            },
            "id": 3232,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "reward",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3214,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3209,
                  "mutability": "mutable",
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3232,
                  "src": "1212:12:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3208,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1212:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3211,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3232,
                  "src": "1226:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3210,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1226:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3213,
                  "mutability": "mutable",
                  "name": "ref",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3232,
                  "src": "1242:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3212,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1242:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1211:43:19"
            },
            "returnParameters": {
              "id": 3215,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1287:0:19"
            },
            "scope": 6368,
            "src": "1196:192:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3258,
              "nodeType": "Block",
              "src": "1481:107:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3241,
                        "name": "m_frozens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 192,
                        "src": "1485:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 3243,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3242,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3234,
                        "src": "1495:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1485:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3248,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3236,
                          "src": "1523:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3244,
                            "name": "m_frozens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 192,
                            "src": "1503:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 3246,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3245,
                            "name": "user",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3234,
                            "src": "1513:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1503:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10389,
                        "src": "1503:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3249,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1503:27:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1485:45:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3251,
                  "nodeType": "ExpressionStatement",
                  "src": "1485:45:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3253,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3234,
                        "src": "1545:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3254,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3236,
                        "src": "1551:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3255,
                        "name": "ref",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3238,
                        "src": "1559:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3252,
                      "name": "Seize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7485,
                      "src": "1539:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3256,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1539:24:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3257,
                  "nodeType": "EmitStatement",
                  "src": "1534:29:19"
                }
              ]
            },
            "documentation": null,
            "id": 3259,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "seize",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3239,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3234,
                  "mutability": "mutable",
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3259,
                  "src": "1406:12:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3233,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1406:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3236,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3259,
                  "src": "1420:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3235,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1420:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3238,
                  "mutability": "mutable",
                  "name": "ref",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3259,
                  "src": "1436:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3237,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1436:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1405:43:19"
            },
            "returnParameters": {
              "id": 3240,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1481:0:19"
            },
            "scope": 6368,
            "src": "1391:197:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3291,
              "nodeType": "Block",
              "src": "1667:143:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3267,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3261,
                        "src": "1681:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3270,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -28,
                            "src": "1695:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          ],
                          "id": 3269,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1687:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 3268,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1687:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 3271,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1687:13:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3272,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3263,
                        "src": "1702:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3266,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1697,
                      "src": "1671:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 3273,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1671:38:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3274,
                  "nodeType": "ExpressionStatement",
                  "src": "1671:38:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3284,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3275,
                        "name": "m_frozens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 192,
                        "src": "1713:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 3277,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3276,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3261,
                        "src": "1723:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1713:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3282,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3263,
                          "src": "1751:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3278,
                            "name": "m_frozens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 192,
                            "src": "1731:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 3280,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3279,
                            "name": "user",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3261,
                            "src": "1741:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1731:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3281,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "1731:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3283,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1731:27:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1713:45:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3285,
                  "nodeType": "ExpressionStatement",
                  "src": "1713:45:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3287,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3261,
                        "src": "1772:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3288,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3263,
                        "src": "1778:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3286,
                      "name": "Lock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7491,
                      "src": "1767:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3289,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1767:18:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3290,
                  "nodeType": "EmitStatement",
                  "src": "1762:23:19"
                }
              ]
            },
            "documentation": null,
            "id": 3292,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lock",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3264,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3261,
                  "mutability": "mutable",
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3292,
                  "src": "1605:12:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3260,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1605:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3263,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3292,
                  "src": "1619:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3262,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1619:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1604:30:19"
            },
            "returnParameters": {
              "id": 3265,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1667:0:19"
            },
            "scope": 6368,
            "src": "1591:219:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3324,
              "nodeType": "Block",
              "src": "1891:145:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3302,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -28,
                            "src": "1913:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IexecPocoDelegate_$6368",
                              "typeString": "contract IexecPocoDelegate"
                            }
                          ],
                          "id": 3301,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1905:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 3300,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1905:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 3303,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1905:13:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3304,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3294,
                        "src": "1920:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3305,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3296,
                        "src": "1926:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3299,
                      "name": "_transfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1697,
                      "src": "1895:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256)"
                      }
                    },
                    "id": 3306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1895:38:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3307,
                  "nodeType": "ExpressionStatement",
                  "src": "1895:38:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3317,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3308,
                        "name": "m_frozens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 192,
                        "src": "1937:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 3310,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3309,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3294,
                        "src": "1947:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1937:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 3315,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3296,
                          "src": "1975:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3311,
                            "name": "m_frozens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 192,
                            "src": "1955:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                              "typeString": "mapping(address => uint256)"
                            }
                          },
                          "id": 3313,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3312,
                            "name": "user",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3294,
                            "src": "1965:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1955:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3314,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10389,
                        "src": "1955:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 3316,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1955:27:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1937:45:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3318,
                  "nodeType": "ExpressionStatement",
                  "src": "1937:45:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3320,
                        "name": "user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3294,
                        "src": "1998:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3321,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3296,
                        "src": "2004:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3319,
                      "name": "Unlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7497,
                      "src": "1991:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3322,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1991:20:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3323,
                  "nodeType": "EmitStatement",
                  "src": "1986:25:19"
                }
              ]
            },
            "documentation": null,
            "id": 3325,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unlock",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3294,
                  "mutability": "mutable",
                  "name": "user",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3325,
                  "src": "1829:12:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3293,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1829:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3296,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3325,
                  "src": "1843:14:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3295,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1843:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1828:30:19"
            },
            "returnParameters": {
              "id": 3298,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1891:0:19"
            },
            "scope": 6368,
            "src": "1813:223:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3341,
              "nodeType": "Block",
              "src": "2345:51:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3334,
                        "name": "_worker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3330,
                        "src": "2354:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3335,
                            "name": "m_deals",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 236,
                            "src": "2363:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                              "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                            }
                          },
                          "id": 3337,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3336,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3328,
                            "src": "2371:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2363:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage",
                            "typeString": "struct IexecLibCore_v5.Deal storage ref"
                          }
                        },
                        "id": 3338,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerStake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 317,
                        "src": "2363:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3333,
                      "name": "lock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3292,
                      "src": "2349:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3339,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2349:43:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3340,
                  "nodeType": "ExpressionStatement",
                  "src": "2349:43:19"
                }
              ]
            },
            "documentation": {
              "id": 3326,
              "nodeType": "StructuredDocumentation",
              "src": "2039:233:19",
              "text": "*************************************************************************\n                   Escrow overhead for contribution                     ***************************************************************************"
            },
            "id": 3342,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "lockContribution",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3328,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3342,
                  "src": "2300:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3327,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2300:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3330,
                  "mutability": "mutable",
                  "name": "_worker",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3342,
                  "src": "2317:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3329,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2317:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2299:34:19"
            },
            "returnParameters": {
              "id": 3332,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2345:0:19"
            },
            "scope": 6368,
            "src": "2274:122:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3357,
              "nodeType": "Block",
              "src": "2472:53:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3350,
                        "name": "_worker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3346,
                        "src": "2483:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3351,
                            "name": "m_deals",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 236,
                            "src": "2492:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                              "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                            }
                          },
                          "id": 3353,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3352,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3344,
                            "src": "2500:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2492:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage",
                            "typeString": "struct IexecLibCore_v5.Deal storage ref"
                          }
                        },
                        "id": 3354,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerStake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 317,
                        "src": "2492:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3349,
                      "name": "unlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3325,
                      "src": "2476:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2476:45:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3356,
                  "nodeType": "ExpressionStatement",
                  "src": "2476:45:19"
                }
              ]
            },
            "documentation": null,
            "id": 3358,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unlockContribution",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3347,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3344,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3358,
                  "src": "2427:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3343,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2427:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3346,
                  "mutability": "mutable",
                  "name": "_worker",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3358,
                  "src": "2444:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3345,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2444:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2426:34:19"
            },
            "returnParameters": {
              "id": 3348,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2472:0:19"
            },
            "scope": 6368,
            "src": "2399:126:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3373,
              "nodeType": "Block",
              "src": "2621:41:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3368,
                        "name": "_worker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3360,
                        "src": "2632:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3369,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3362,
                        "src": "2641:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3370,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3364,
                        "src": "2650:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3367,
                      "name": "reward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3232,
                      "src": "2625:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3371,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2625:33:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3372,
                  "nodeType": "ExpressionStatement",
                  "src": "2625:33:19"
                }
              ]
            },
            "documentation": null,
            "id": 3374,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "rewardForContribution",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3365,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3360,
                  "mutability": "mutable",
                  "name": "_worker",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3374,
                  "src": "2559:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3359,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2559:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3362,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3374,
                  "src": "2576:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3361,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2576:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3364,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3374,
                  "src": "2593:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3363,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2593:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2558:51:19"
            },
            "returnParameters": {
              "id": 3366,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2621:0:19"
            },
            "scope": 6368,
            "src": "2528:134:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3392,
              "nodeType": "Block",
              "src": "2754:61:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3384,
                        "name": "_worker",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3378,
                        "src": "2764:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 3385,
                            "name": "m_deals",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 236,
                            "src": "2773:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                              "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                            }
                          },
                          "id": 3387,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 3386,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3376,
                            "src": "2781:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2773:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage",
                            "typeString": "struct IexecLibCore_v5.Deal storage ref"
                          }
                        },
                        "id": 3388,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerStake",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 317,
                        "src": "2773:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3389,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3380,
                        "src": "2803:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3383,
                      "name": "seize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3259,
                      "src": "2758:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3390,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2758:53:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3391,
                  "nodeType": "ExpressionStatement",
                  "src": "2758:53:19"
                }
              ]
            },
            "documentation": null,
            "id": 3393,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "seizeContribution",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3381,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3376,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3393,
                  "src": "2692:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3375,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2692:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3378,
                  "mutability": "mutable",
                  "name": "_worker",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3393,
                  "src": "2709:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3377,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2709:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3380,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3393,
                  "src": "2726:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3379,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2726:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2691:51:19"
            },
            "returnParameters": {
              "id": 3382,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2754:0:19"
            },
            "scope": 6368,
            "src": "2665:150:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3412,
              "nodeType": "Block",
              "src": "2909:67:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3403,
                              "name": "m_deals",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 236,
                              "src": "2920:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                                "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                              }
                            },
                            "id": 3405,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3404,
                              "name": "_dealid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3395,
                              "src": "2928:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2920:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage",
                              "typeString": "struct IexecLibCore_v5.Deal storage ref"
                            }
                          },
                          "id": 3406,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "2920:27:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3407,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 286,
                        "src": "2920:33:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3408,
                        "name": "_amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3397,
                        "src": "2955:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3409,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3399,
                        "src": "2964:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3402,
                      "name": "reward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3232,
                      "src": "2913:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3410,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2913:59:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3411,
                  "nodeType": "ExpressionStatement",
                  "src": "2913:59:19"
                }
              ]
            },
            "documentation": null,
            "id": 3413,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "rewardForScheduling",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3400,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3395,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3413,
                  "src": "2847:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3394,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2847:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3397,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3413,
                  "src": "2864:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3396,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2864:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3399,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3413,
                  "src": "2881:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3398,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2881:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2846:51:19"
            },
            "returnParameters": {
              "id": 3401,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2909:0:19"
            },
            "scope": 6368,
            "src": "2818:158:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3548,
              "nodeType": "Block",
              "src": "3045:1162:19",
              "statements": [
                {
                  "assignments": [
                    3423
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3423,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3548,
                      "src": "3049:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3422,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "3049:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3427,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3424,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "3085:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 3426,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3425,
                      "name": "_dealid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3415,
                      "src": "3093:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3085:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3049:52:19"
                },
                {
                  "assignments": [
                    3429
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3429,
                      "mutability": "mutable",
                      "name": "requesterstake",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3548,
                      "src": "3106:22:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3428,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3106:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3443,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3439,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3423,
                            "src": "3230:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3440,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "3230:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3441,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "3230:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3434,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3423,
                                "src": "3178:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                }
                              },
                              "id": 3435,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "dataset",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 293,
                              "src": "3178:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Resource_$289_storage",
                                "typeString": "struct IexecLibCore_v5.Resource storage ref"
                              }
                            },
                            "id": 3436,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "price",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 288,
                            "src": "3178:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3430,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3423,
                                "src": "3131:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                }
                              },
                              "id": 3431,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "app",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 291,
                              "src": "3131:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Resource_$289_storage",
                                "typeString": "struct IexecLibCore_v5.Resource storage ref"
                              }
                            },
                            "id": 3432,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "price",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 288,
                            "src": "3131:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3433,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "add",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10364,
                          "src": "3131:46:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 3437,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3131:66:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3438,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10364,
                      "src": "3131:98:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 3442,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3131:121:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3106:146:19"
                },
                {
                  "assignments": [
                    3445
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3445,
                      "mutability": "mutable",
                      "name": "poolstake",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3548,
                      "src": "3256:17:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3444,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3256:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3452,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3450,
                        "name": "WORKERPOOL_STAKE_RATIO",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 210,
                        "src": "3332:22:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3446,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3423,
                            "src": "3276:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3447,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "3276:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3448,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "3276:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "percentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10543,
                      "src": "3276:55:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 3451,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3276:79:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3256:99:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3454,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3423,
                          "src": "3393:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 3455,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requester",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 303,
                        "src": "3393:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3456,
                        "name": "requesterstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3429,
                        "src": "3409:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3457,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3417,
                        "src": "3425:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3453,
                      "name": "seize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3259,
                      "src": "3387:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3458,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3387:46:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3459,
                  "nodeType": "ExpressionStatement",
                  "src": "3387:46:19"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3464,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3460,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3423,
                          "src": "3458:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 3461,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "app",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 291,
                        "src": "3458:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 3462,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 288,
                      "src": "3458:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3463,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3475:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3458:18:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3476,
                  "nodeType": "IfStatement",
                  "src": "3454:83:19",
                  "trueBody": {
                    "id": 3475,
                    "nodeType": "Block",
                    "src": "3480:57:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3466,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3423,
                                  "src": "3492:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                  }
                                },
                                "id": 3467,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "app",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 291,
                                "src": "3492:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_storage",
                                  "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                }
                              },
                              "id": 3468,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 286,
                              "src": "3492:14:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3469,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3423,
                                  "src": "3508:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                  }
                                },
                                "id": 3470,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "app",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 291,
                                "src": "3508:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_storage",
                                  "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                }
                              },
                              "id": 3471,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "price",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 288,
                              "src": "3508:14:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3472,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3417,
                              "src": "3524:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3465,
                            "name": "reward",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3232,
                            "src": "3485:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                              "typeString": "function (address,uint256,bytes32)"
                            }
                          },
                          "id": 3473,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3485:47:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3474,
                        "nodeType": "ExpressionStatement",
                        "src": "3485:47:19"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 3490,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 3481,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3477,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3423,
                            "src": "3561:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3478,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "dataset",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 293,
                          "src": "3561:12:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3479,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "3561:18:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3480,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3582:1:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "3561:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 3489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3482,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3423,
                            "src": "3587:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3483,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "dataset",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 293,
                          "src": "3587:12:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3484,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "pointer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 284,
                        "src": "3587:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3487,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3619:1:19",
                            "subdenomination": null,
                            "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": 3486,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3611:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 3485,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "3611:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 3488,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3611:10:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "src": "3587:34:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3561:60:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3502,
                  "nodeType": "IfStatement",
                  "src": "3557:133:19",
                  "trueBody": {
                    "id": 3501,
                    "nodeType": "Block",
                    "src": "3625:65:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3492,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3423,
                                  "src": "3637:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                  }
                                },
                                "id": 3493,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "dataset",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 293,
                                "src": "3637:12:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_storage",
                                  "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                }
                              },
                              "id": 3494,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 286,
                              "src": "3637:18:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3495,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3423,
                                  "src": "3657:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                  }
                                },
                                "id": 3496,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "dataset",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 293,
                                "src": "3657:12:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_storage",
                                  "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                }
                              },
                              "id": 3497,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "price",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 288,
                              "src": "3657:18:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3498,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3417,
                              "src": "3677:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3491,
                            "name": "reward",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3232,
                            "src": "3630:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                              "typeString": "function (address,uint256,bytes32)"
                            }
                          },
                          "id": 3499,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3630:55:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3500,
                        "nodeType": "ExpressionStatement",
                        "src": "3630:55:19"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3504,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3423,
                            "src": "3723:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3505,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "3723:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3506,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 286,
                        "src": "3723:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3507,
                        "name": "poolstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3445,
                        "src": "3746:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3503,
                      "name": "unlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3325,
                      "src": "3716:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3716:40:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3509,
                  "nodeType": "ExpressionStatement",
                  "src": "3716:40:19"
                },
                {
                  "assignments": [
                    3511
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3511,
                      "mutability": "mutable",
                      "name": "kitty",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3548,
                      "src": "3853:13:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3510,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3853:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3515,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3512,
                      "name": "m_frozens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 192,
                      "src": "3869:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                        "typeString": "mapping(address => uint256)"
                      }
                    },
                    "id": 3514,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3513,
                      "name": "KITTY_ADDRESS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 219,
                      "src": "3879:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "3869:24:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3853:40:19"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3518,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3516,
                      "name": "kitty",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3511,
                      "src": "3901:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3517,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3909:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3901:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3547,
                  "nodeType": "IfStatement",
                  "src": "3897:307:19",
                  "trueBody": {
                    "id": 3546,
                    "nodeType": "Block",
                    "src": "3914:290:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3530,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 3519,
                            "name": "kitty",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3511,
                            "src": "3919:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3528,
                                "name": "kitty",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3511,
                                "src": "4050:5:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3525,
                                    "name": "KITTY_MIN",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 216,
                                    "src": "3997:9:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 3522,
                                        "name": "KITTY_RATIO",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 213,
                                        "src": "3956:11:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 3520,
                                        "name": "kitty",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 3511,
                                        "src": "3927:5:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 3521,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "percentage",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 10543,
                                      "src": "3927:28:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                      }
                                    },
                                    "id": 3523,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "3927:41:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 3524,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "max",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10487,
                                  "src": "3927:69:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 3526,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3927:80:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 3527,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "min",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10505,
                              "src": "3927:122:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 3529,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3927:129:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3919:137:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3531,
                        "nodeType": "ExpressionStatement",
                        "src": "3919:137:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3533,
                              "name": "KITTY_ADDRESS",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 219,
                              "src": "4111:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3534,
                              "name": "kitty",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3511,
                              "src": "4134:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3535,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3417,
                              "src": "4141:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3532,
                            "name": "seize",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3259,
                            "src": "4104:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                              "typeString": "function (address,uint256,bytes32)"
                            }
                          },
                          "id": 3536,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4104:45:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3537,
                        "nodeType": "ExpressionStatement",
                        "src": "4104:45:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3539,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3423,
                                  "src": "4161:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                  }
                                },
                                "id": 3540,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "workerpool",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 295,
                                "src": "4161:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_storage",
                                  "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                }
                              },
                              "id": 3541,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 286,
                              "src": "4161:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3542,
                              "name": "kitty",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3511,
                              "src": "4184:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3543,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3417,
                              "src": "4191:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3538,
                            "name": "reward",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3232,
                            "src": "4154:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                              "typeString": "function (address,uint256,bytes32)"
                            }
                          },
                          "id": 3544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4154:45:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3545,
                        "nodeType": "ExpressionStatement",
                        "src": "4154:45:19"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 3549,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "successWork",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3418,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3415,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3549,
                  "src": "3000:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3414,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3000:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3417,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3549,
                  "src": "3017:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3416,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3017:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2999:34:19"
            },
            "returnParameters": {
              "id": 3419,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3045:0:19"
            },
            "scope": 6368,
            "src": "2979:1228:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3614,
              "nodeType": "Block",
              "src": "4275:567:19",
              "statements": [
                {
                  "assignments": [
                    3559
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3559,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3614,
                      "src": "4279:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3558,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "4279:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3563,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3560,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "4315:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 3562,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3561,
                      "name": "_dealid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3551,
                      "src": "4323:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4315:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4279:52:19"
                },
                {
                  "assignments": [
                    3565
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3565,
                      "mutability": "mutable",
                      "name": "requesterstake",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3614,
                      "src": "4336:22:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3564,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4336:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3579,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3575,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3559,
                            "src": "4460:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3576,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "4460:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3577,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "4460:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3570,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3559,
                                "src": "4408:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                }
                              },
                              "id": 3571,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "dataset",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 293,
                              "src": "4408:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Resource_$289_storage",
                                "typeString": "struct IexecLibCore_v5.Resource storage ref"
                              }
                            },
                            "id": 3572,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "price",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 288,
                            "src": "4408:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3566,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3559,
                                "src": "4361:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                }
                              },
                              "id": 3567,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "app",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 291,
                              "src": "4361:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Resource_$289_storage",
                                "typeString": "struct IexecLibCore_v5.Resource storage ref"
                              }
                            },
                            "id": 3568,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "price",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 288,
                            "src": "4361:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 3569,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "add",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10364,
                          "src": "4361:46:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 3573,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4361:66:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3574,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10364,
                      "src": "4361:98:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 3578,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4361:121:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4336:146:19"
                },
                {
                  "assignments": [
                    3581
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3581,
                      "mutability": "mutable",
                      "name": "poolstake",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 3614,
                      "src": "4486:17:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3580,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4486:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3588,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3586,
                        "name": "WORKERPOOL_STAKE_RATIO",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 210,
                        "src": "4562:22:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3582,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3559,
                            "src": "4506:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3583,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "4506:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3584,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "4506:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 3585,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "percentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10543,
                      "src": "4506:55:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 3587,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4506:79:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4486:99:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3590,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3559,
                          "src": "4597:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 3591,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requester",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 303,
                        "src": "4597:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3592,
                        "name": "requesterstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3565,
                        "src": "4620:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3589,
                      "name": "unlock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3325,
                      "src": "4590:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4590:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3594,
                  "nodeType": "ExpressionStatement",
                  "src": "4590:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3596,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3559,
                            "src": "4650:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 3597,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "4650:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 3598,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 286,
                        "src": "4650:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3599,
                        "name": "poolstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3581,
                        "src": "4673:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3600,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3553,
                        "src": "4684:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3595,
                      "name": "seize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3259,
                      "src": "4643:5:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3601,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4643:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3602,
                  "nodeType": "ExpressionStatement",
                  "src": "4643:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3604,
                        "name": "KITTY_ADDRESS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 219,
                        "src": "4703:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3605,
                        "name": "poolstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3581,
                        "src": "4726:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3606,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3553,
                        "src": "4737:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3603,
                      "name": "reward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3232,
                      "src": "4696:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 3607,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4696:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3608,
                  "nodeType": "ExpressionStatement",
                  "src": "4696:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3610,
                        "name": "KITTY_ADDRESS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 219,
                        "src": "4776:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3611,
                        "name": "poolstake",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3581,
                        "src": "4799:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 3609,
                      "name": "lock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3292,
                      "src": "4769:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 3612,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4769:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3613,
                  "nodeType": "ExpressionStatement",
                  "src": "4769:49:19"
                }
              ]
            },
            "documentation": null,
            "id": 3615,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "failedWork",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 3554,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3551,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3615,
                  "src": "4230:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3550,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4230:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3553,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3615,
                  "src": "4247:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3552,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4247:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4229:34:19"
            },
            "returnParameters": {
              "id": 3555,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4275:0:19"
            },
            "scope": 6368,
            "src": "4210:632:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              7582
            ],
            "body": {
              "id": 3634,
              "nodeType": "Block",
              "src": "5206:60:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3629,
                        "name": "_identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3618,
                        "src": "5233:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3630,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3620,
                        "src": "5244:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3631,
                        "name": "_signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3622,
                        "src": "5251:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 3628,
                      "name": "_checkSignature",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6674,
                        6757
                      ],
                      "referencedDeclaration": 6674,
                      "src": "5217:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                        "typeString": "function (address,bytes32,bytes memory) view returns (bool)"
                      }
                    },
                    "id": 3632,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5217:45:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3627,
                  "id": 3633,
                  "nodeType": "Return",
                  "src": "5210:52:19"
                }
              ]
            },
            "documentation": {
              "id": 3616,
              "nodeType": "StructuredDocumentation",
              "src": "4845:233:19",
              "text": "*************************************************************************\n                          ODB order signature                           ***************************************************************************"
            },
            "functionSelector": "01751998",
            "id": 3635,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "verifySignature",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3624,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5181:8:19"
            },
            "parameters": {
              "id": 3623,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3618,
                  "mutability": "mutable",
                  "name": "_identity",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3635,
                  "src": "5105:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3617,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5105:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3620,
                  "mutability": "mutable",
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3635,
                  "src": "5124:13:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3619,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5124:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3622,
                  "mutability": "mutable",
                  "name": "_signature",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3635,
                  "src": "5139:25:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3621,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5139:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5104:61:19"
            },
            "returnParameters": {
              "id": 3627,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3626,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3635,
                  "src": "5199:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3625,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5199:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5198:6:19"
            },
            "scope": 6368,
            "src": "5080:186:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7591
            ],
            "body": {
              "id": 3650,
              "nodeType": "Block",
              "src": "5371:51:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3646,
                        "name": "_identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3637,
                        "src": "5401:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3647,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3639,
                        "src": "5412:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 3645,
                      "name": "_checkPresignature",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6621,
                      "src": "5382:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (address,bytes32) view returns (bool)"
                      }
                    },
                    "id": 3648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5382:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3644,
                  "id": 3649,
                  "nodeType": "Return",
                  "src": "5375:43:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "c87b582a",
            "id": 3651,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "verifyPresignature",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3641,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5346:8:19"
            },
            "parameters": {
              "id": 3640,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3637,
                  "mutability": "mutable",
                  "name": "_identity",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3651,
                  "src": "5297:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3636,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5297:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3639,
                  "mutability": "mutable",
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3651,
                  "src": "5316:13:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3638,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5316:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5296:34:19"
            },
            "returnParameters": {
              "id": 3644,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3643,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3651,
                  "src": "5364:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3642,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5364:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5363:6:19"
            },
            "scope": 6368,
            "src": "5269:153:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7602
            ],
            "body": {
              "id": 3669,
              "nodeType": "Block",
              "src": "5565:74:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3664,
                        "name": "_identity",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3653,
                        "src": "5606:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3665,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3655,
                        "src": "5617:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3666,
                        "name": "_signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3657,
                        "src": "5624:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 3663,
                      "name": "_checkPresignatureOrSignature",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        6780,
                        6805
                      ],
                      "referencedDeclaration": 6780,
                      "src": "5576:29:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                        "typeString": "function (address,bytes32,bytes memory) view returns (bool)"
                      }
                    },
                    "id": 3667,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5576:59:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 3662,
                  "id": 3668,
                  "nodeType": "Return",
                  "src": "5569:66:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "bf36994e",
            "id": 3670,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "verifyPresignatureOrSignature",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3659,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5540:8:19"
            },
            "parameters": {
              "id": 3658,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3653,
                  "mutability": "mutable",
                  "name": "_identity",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3670,
                  "src": "5464:17:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3652,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5464:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3655,
                  "mutability": "mutable",
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3670,
                  "src": "5483:13:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3654,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5483:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3657,
                  "mutability": "mutable",
                  "name": "_signature",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3670,
                  "src": "5498:25:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3656,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5498:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5463:61:19"
            },
            "returnParameters": {
              "id": 3662,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3661,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 3670,
                  "src": "5558:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3660,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5558:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5557:6:19"
            },
            "scope": 6368,
            "src": "5425:214:19",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7615
            ],
            "body": {
              "id": 4577,
              "nodeType": "Block",
              "src": "6189:8566:19",
              "statements": [
                {
                  "assignments": [
                    3686
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3686,
                      "mutability": "mutable",
                      "name": "tag",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4577,
                      "src": "6290:11:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3685,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "6290:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3695,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 3694,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 3691,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3687,
                          "name": "_apporder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3673,
                          "src": "6304:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                            "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                          }
                        },
                        "id": 3688,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "tag",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 430,
                        "src": "6304:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "|",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3689,
                          "name": "_datasetorder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3675,
                          "src": "6320:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                            "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                          }
                        },
                        "id": 3690,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "tag",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 449,
                        "src": "6320:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "6304:33:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "|",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3692,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "6340:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 3693,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "tag",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 501,
                      "src": "6340:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "6304:53:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6290:67:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3701,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3697,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6369:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3698,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "category",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 503,
                          "src": "6369:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3699,
                            "name": "_workerpoolorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3677,
                            "src": "6405:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                            }
                          },
                          "id": 3700,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "category",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 470,
                          "src": "6405:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6369:61:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783030",
                        "id": 3702,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6439:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3507d68335c507d7966f377934c4d42e7aa51aab903a61b104ae7e1ebe6f2b08",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x00\""
                        },
                        "value": "iExecV5-matchOrders-0x00"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3507d68335c507d7966f377934c4d42e7aa51aab903a61b104ae7e1ebe6f2b08",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x00\""
                        }
                      ],
                      "id": 3696,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6361:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3703,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6361:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3704,
                  "nodeType": "ExpressionStatement",
                  "src": "6361:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3710,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3706,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6478:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3707,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "category",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 503,
                          "src": "6478:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3708,
                            "name": "m_categories",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 261,
                            "src": "6514:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Category_$282_storage_$dyn_storage",
                              "typeString": "struct IexecLibCore_v5.Category storage ref[] storage ref"
                            }
                          },
                          "id": 3709,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "6514:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6478:55:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783031",
                        "id": 3711,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6548:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_349a9b42be2f807208c237eb1033ac4c73ee8d78db4a4686b5f52f0daf92e0ec",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x01\""
                        },
                        "value": "iExecV5-matchOrders-0x01"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_349a9b42be2f807208c237eb1033ac4c73ee8d78db4a4686b5f52f0daf92e0ec",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x01\""
                        }
                      ],
                      "id": 3705,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6470:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6470:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3713,
                  "nodeType": "ExpressionStatement",
                  "src": "6470:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3719,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3715,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6587:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3716,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "trust",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 505,
                          "src": "6587:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3717,
                            "name": "_workerpoolorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3677,
                            "src": "6623:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                            }
                          },
                          "id": 3718,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "trust",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 472,
                          "src": "6623:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6587:58:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783032",
                        "id": 3720,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6657:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6c2077ac7e3f2f12a0a178ea638737a15bdcdcbd742967ee2eaeff1c1031a9c9",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x02\""
                        },
                        "value": "iExecV5-matchOrders-0x02"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6c2077ac7e3f2f12a0a178ea638737a15bdcdcbd742967ee2eaeff1c1031a9c9",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x02\""
                        }
                      ],
                      "id": 3714,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6579:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3721,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6579:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3722,
                  "nodeType": "ExpressionStatement",
                  "src": "6579:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3724,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6696:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3725,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "appmaxprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 487,
                          "src": "6696:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3726,
                            "name": "_apporder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3673,
                            "src": "6732:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                            }
                          },
                          "id": 3727,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "appprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 426,
                          "src": "6732:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6696:54:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783033",
                        "id": 3729,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6766:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b6ab12182cde99a5986448052a3d9d0202ee4be9d59c003844f3c32c8eb23042",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x03\""
                        },
                        "value": "iExecV5-matchOrders-0x03"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b6ab12182cde99a5986448052a3d9d0202ee4be9d59c003844f3c32c8eb23042",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x03\""
                        }
                      ],
                      "id": 3723,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6688:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6688:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3731,
                  "nodeType": "ExpressionStatement",
                  "src": "6688:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3737,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3733,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6805:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3734,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "datasetmaxprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 491,
                          "src": "6805:29:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3735,
                            "name": "_datasetorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3675,
                            "src": "6841:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                            }
                          },
                          "id": 3736,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "datasetprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 445,
                          "src": "6841:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6805:62:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783034",
                        "id": 3738,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6875:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_51536a989a45f02e7aa2c2eb11135038b3ee2860412e0182dbb18cc5f3ac38d1",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x04\""
                        },
                        "value": "iExecV5-matchOrders-0x04"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_51536a989a45f02e7aa2c2eb11135038b3ee2860412e0182dbb18cc5f3ac38d1",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x04\""
                        }
                      ],
                      "id": 3732,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6797:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3739,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6797:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3740,
                  "nodeType": "ExpressionStatement",
                  "src": "6797:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3746,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3742,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "6914:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3743,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpoolmaxprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 495,
                          "src": "6914:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3744,
                            "name": "_workerpoolorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3677,
                            "src": "6950:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                            }
                          },
                          "id": 3745,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpoolprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 464,
                          "src": "6950:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6914:68:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783035",
                        "id": 3747,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6984:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_28a5e93603e56ac687da40804cb7efbce727bbb47bbda7cb1fb5909a6da26f6a",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x05\""
                        },
                        "value": "iExecV5-matchOrders-0x05"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_28a5e93603e56ac687da40804cb7efbce727bbb47bbda7cb1fb5909a6da26f6a",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x05\""
                        }
                      ],
                      "id": 3741,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6906:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3748,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6906:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3749,
                  "nodeType": "ExpressionStatement",
                  "src": "6906:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 3757,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 3755,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3751,
                            "name": "tag",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3686,
                            "src": "7023:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 3754,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "~",
                            "prefix": true,
                            "src": "7029:21:19",
                            "subExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3752,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "7030:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3753,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "tag",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 468,
                              "src": "7030:20:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "7023:27:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 3756,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7059:3:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        },
                        "src": "7023:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783036",
                        "id": 3758,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7093:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_603c3a691c27e109c2df65d26af5f8a5e8d0e2d790fcdfbfdaf504d07a8aa18a",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x06\""
                        },
                        "value": "iExecV5-matchOrders-0x06"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_603c3a691c27e109c2df65d26af5f8a5e8d0e2d790fcdfbfdaf504d07a8aa18a",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x06\""
                        }
                      ],
                      "id": 3750,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7015:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3759,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7015:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3760,
                  "nodeType": "ExpressionStatement",
                  "src": "7015:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes1",
                          "typeString": "bytes1"
                        },
                        "id": 3772,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          },
                          "id": 3770,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 3765,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 3762,
                                    "name": "tag",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3686,
                                    "src": "7133:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "^",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 3763,
                                      "name": "_apporder",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3673,
                                      "src": "7139:9:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                        "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                      }
                                    },
                                    "id": 3764,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "tag",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 430,
                                    "src": "7139:13:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "7133:19:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "id": 3766,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "7132:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 3768,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "3331",
                              "id": 3767,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7154:2:19",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31_by_1",
                                "typeString": "int_const 31"
                              },
                              "value": "31"
                            },
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7132:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes1",
                              "typeString": "bytes1"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783031",
                            "id": 3769,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7160:4:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "0x01"
                          },
                          "src": "7132:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes1",
                            "typeString": "bytes1"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 3771,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7168:3:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        },
                        "src": "7132:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783037",
                        "id": 3773,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7202:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2a08ef796bac294c72f558abcc70f50507b0cd004c1c44be09868bd731300b71",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x07\""
                        },
                        "value": "iExecV5-matchOrders-0x07"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_2a08ef796bac294c72f558abcc70f50507b0cd004c1c44be09868bd731300b71",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x07\""
                        }
                      ],
                      "id": 3761,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7124:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3774,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7124:105:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3775,
                  "nodeType": "ExpressionStatement",
                  "src": "7124:105:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3781,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3777,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "7279:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3778,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "app",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 485,
                          "src": "7279:17:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3779,
                            "name": "_apporder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3673,
                            "src": "7304:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                            }
                          },
                          "id": 3780,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "app",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 424,
                          "src": "7304:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "7279:38:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783130",
                        "id": 3782,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7433:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b429eab07e7befe09d82f236a7beac1472d7d28b91fc1926bc399a44e955f656",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x10\""
                        },
                        "value": "iExecV5-matchOrders-0x10"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b429eab07e7befe09d82f236a7beac1472d7d28b91fc1926bc399a44e955f656",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x10\""
                        }
                      ],
                      "id": 3776,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7271:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7271:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3784,
                  "nodeType": "ExpressionStatement",
                  "src": "7271:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3790,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3786,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "7472:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 3787,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "dataset",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 489,
                          "src": "7472:21:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3788,
                            "name": "_datasetorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3675,
                            "src": "7497:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                            }
                          },
                          "id": 3789,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "dataset",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 443,
                          "src": "7497:21:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "7472:46:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783131",
                        "id": 3791,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7626:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_10af25a6975775551a34346555fa1b067b7d33d9602bab316c328989d6536d0b",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x11\""
                        },
                        "value": "iExecV5-matchOrders-0x11"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_10af25a6975775551a34346555fa1b067b7d33d9602bab316c328989d6536d0b",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x11\""
                        }
                      ],
                      "id": 3785,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7464:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3792,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7464:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3793,
                  "nodeType": "ExpressionStatement",
                  "src": "7464:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3809,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3801,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3795,
                              "name": "_requestorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3679,
                              "src": "7665:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                              }
                            },
                            "id": 3796,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpool",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 493,
                            "src": "7665:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3799,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7711:1:19",
                                "subdenomination": null,
                                "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": 3798,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7703:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3797,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "7703:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3800,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7703:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "7665:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3803,
                                "name": "_requestorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3679,
                                "src": "7732:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                                }
                              },
                              "id": 3804,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 493,
                              "src": "7732:24:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3805,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "7768:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3806,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 462,
                              "src": "7768:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3807,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "7797:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3802,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "7717:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3808,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7717:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7665:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783132",
                        "id": 3810,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7819:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_dd250873be6ce6bb63186d7a4a3f2a0a81bf410f53c7574e969fc1afbe7bc9e7",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x12\""
                        },
                        "value": "iExecV5-matchOrders-0x12"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_dd250873be6ce6bb63186d7a4a3f2a0a81bf410f53c7574e969fc1afbe7bc9e7",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x12\""
                        }
                      ],
                      "id": 3794,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7657:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3811,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7657:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3812,
                  "nodeType": "ExpressionStatement",
                  "src": "7657:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3828,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3820,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3814,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "7902:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 3815,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "datasetrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 432,
                            "src": "7902:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3818,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7948:1:19",
                                "subdenomination": null,
                                "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": 3817,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7940:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3816,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "7940:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3819,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7940:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "7902:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3822,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "7969:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 3823,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "datasetrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 432,
                              "src": "7969:25:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3824,
                                "name": "_datasetorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3675,
                                "src": "8005:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                }
                              },
                              "id": 3825,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "dataset",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 443,
                              "src": "8005:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3826,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8034:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3821,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "7954:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3827,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7954:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7902:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783133",
                        "id": 3829,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8056:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_271ce0a5615ce826ed8710f548a45e435717973216632a6fa50ef6883c72eab7",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x13\""
                        },
                        "value": "iExecV5-matchOrders-0x13"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_271ce0a5615ce826ed8710f548a45e435717973216632a6fa50ef6883c72eab7",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x13\""
                        }
                      ],
                      "id": 3813,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7894:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3830,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7894:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3831,
                  "nodeType": "ExpressionStatement",
                  "src": "7894:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3847,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3839,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3833,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "8095:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 3834,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpoolrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 434,
                            "src": "8095:28:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3837,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8141:1:19",
                                "subdenomination": null,
                                "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": 3836,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8133:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3835,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "8133:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3838,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8133:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "8095:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3841,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "8162:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 3842,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpoolrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 434,
                              "src": "8162:28:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3843,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "8198:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3844,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 462,
                              "src": "8198:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3845,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8227:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3840,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "8147:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3846,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8147:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8095:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783134",
                        "id": 3848,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8249:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_83f4f59b03aa94fb6fb6445cd0444930aef3f89e7af52c612711d6852eb67ea4",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x14\""
                        },
                        "value": "iExecV5-matchOrders-0x14"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_83f4f59b03aa94fb6fb6445cd0444930aef3f89e7af52c612711d6852eb67ea4",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x14\""
                        }
                      ],
                      "id": 3832,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8087:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3849,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8087:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3850,
                  "nodeType": "ExpressionStatement",
                  "src": "8087:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3866,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3858,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3852,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "8288:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 3853,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requesterrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 436,
                            "src": "8288:27:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3856,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8334:1:19",
                                "subdenomination": null,
                                "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": 3855,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8326:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3854,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "8326:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3857,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8326:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "8288:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3860,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "8355:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 3861,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requesterrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 436,
                              "src": "8355:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3862,
                                "name": "_requestorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3679,
                                "src": "8391:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                                }
                              },
                              "id": 3863,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requester",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 497,
                              "src": "8391:23:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3864,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8420:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3859,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "8340:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8340:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8288:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783135",
                        "id": 3867,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8442:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d04f91fbdc69ad7e24fb6730e584438d54f220f45d6a8c334b31d63a9b02de92",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x15\""
                        },
                        "value": "iExecV5-matchOrders-0x15"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d04f91fbdc69ad7e24fb6730e584438d54f220f45d6a8c334b31d63a9b02de92",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x15\""
                        }
                      ],
                      "id": 3851,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8280:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3868,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8280:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3869,
                  "nodeType": "ExpressionStatement",
                  "src": "8280:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3885,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3877,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3871,
                              "name": "_datasetorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3675,
                              "src": "8481:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                              }
                            },
                            "id": 3872,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "apprestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 451,
                            "src": "8481:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3875,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8527:1:19",
                                "subdenomination": null,
                                "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": 3874,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8519:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3873,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "8519:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3876,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8519:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "8481:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3879,
                                "name": "_datasetorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3675,
                                "src": "8548:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                }
                              },
                              "id": 3880,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "apprestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 451,
                              "src": "8548:25:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3881,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "8584:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 3882,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "app",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 424,
                              "src": "8584:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3883,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8613:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3878,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "8533:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3884,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8533:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8481:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783136",
                        "id": 3886,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8635:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_87156354f38f211fdb36d0bfb76429daa1cf70e3ee9b048e30ef7ab138c96876",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x16\""
                        },
                        "value": "iExecV5-matchOrders-0x16"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_87156354f38f211fdb36d0bfb76429daa1cf70e3ee9b048e30ef7ab138c96876",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x16\""
                        }
                      ],
                      "id": 3870,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8473:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3887,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8473:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3888,
                  "nodeType": "ExpressionStatement",
                  "src": "8473:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3904,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3896,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3890,
                              "name": "_datasetorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3675,
                              "src": "8674:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                              }
                            },
                            "id": 3891,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpoolrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 453,
                            "src": "8674:32:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3894,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8720:1:19",
                                "subdenomination": null,
                                "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": 3893,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8712:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3892,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "8712:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3895,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8712:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "8674:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3898,
                                "name": "_datasetorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3675,
                                "src": "8741:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                }
                              },
                              "id": 3899,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpoolrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 453,
                              "src": "8741:32:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3900,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "8777:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3901,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 462,
                              "src": "8777:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3902,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8806:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3897,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "8726:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3903,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8726:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8674:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783137",
                        "id": 3905,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8828:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_fb6463f185af90bfd3c4a7345623c3ed5253e0160081699804962ae883325128",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x17\""
                        },
                        "value": "iExecV5-matchOrders-0x17"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_fb6463f185af90bfd3c4a7345623c3ed5253e0160081699804962ae883325128",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x17\""
                        }
                      ],
                      "id": 3889,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8666:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3906,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8666:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3907,
                  "nodeType": "ExpressionStatement",
                  "src": "8666:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3923,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3915,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3909,
                              "name": "_datasetorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3675,
                              "src": "8867:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                              }
                            },
                            "id": 3910,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requesterrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 455,
                            "src": "8867:31:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3913,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8913:1:19",
                                "subdenomination": null,
                                "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": 3912,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8905:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3911,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "8905:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3914,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8905:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "8867:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3917,
                                "name": "_datasetorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3675,
                                "src": "8934:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                }
                              },
                              "id": 3918,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requesterrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 455,
                              "src": "8934:31:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3919,
                                "name": "_requestorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3679,
                                "src": "8970:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                                }
                              },
                              "id": 3920,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requester",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 497,
                              "src": "8970:23:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3921,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "8999:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3916,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "8919:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3922,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8919:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8867:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783138",
                        "id": 3924,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9021:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8bdb94718afb88bffbac36e694ef5a83b932f3ee9583b6c4b981d56a50f58922",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x18\""
                        },
                        "value": "iExecV5-matchOrders-0x18"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8bdb94718afb88bffbac36e694ef5a83b932f3ee9583b6c4b981d56a50f58922",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x18\""
                        }
                      ],
                      "id": 3908,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8859:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8859:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3926,
                  "nodeType": "ExpressionStatement",
                  "src": "8859:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3942,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3934,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3928,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "9060:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 3929,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "apprestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 474,
                            "src": "9060:28:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3932,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9106:1:19",
                                "subdenomination": null,
                                "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": 3931,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9098:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3930,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "9098:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3933,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9098:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "9060:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3936,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "9127:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3937,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "apprestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 474,
                              "src": "9127:28:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3938,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "9163:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 3939,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "app",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 424,
                              "src": "9163:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3940,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "9192:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3935,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "9112:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3941,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9112:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "9060:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783139",
                        "id": 3943,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9214:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0247d4bd87a60f3c2e3bd36c23e0d0a411b62a362435dd23d8900e180890f9d8",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x19\""
                        },
                        "value": "iExecV5-matchOrders-0x19"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_0247d4bd87a60f3c2e3bd36c23e0d0a411b62a362435dd23d8900e180890f9d8",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x19\""
                        }
                      ],
                      "id": 3927,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "9052:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9052:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3945,
                  "nodeType": "ExpressionStatement",
                  "src": "9052:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3961,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3953,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3947,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "9253:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 3948,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "datasetrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 476,
                            "src": "9253:32:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3951,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9299:1:19",
                                "subdenomination": null,
                                "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": 3950,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9291:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3949,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "9291:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3952,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9291:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "9253:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3955,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "9320:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3956,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "datasetrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 476,
                              "src": "9320:32:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3957,
                                "name": "_datasetorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3675,
                                "src": "9356:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                }
                              },
                              "id": 3958,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "dataset",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 443,
                              "src": "9356:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3959,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "9385:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3954,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "9305:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3960,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9305:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "9253:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783161",
                        "id": 3962,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9407:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_374ba584c5da1862d940866e7f0ff9d01edcac924bd5fc334c65bf818dc6929c",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x1a\""
                        },
                        "value": "iExecV5-matchOrders-0x1a"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_374ba584c5da1862d940866e7f0ff9d01edcac924bd5fc334c65bf818dc6929c",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x1a\""
                        }
                      ],
                      "id": 3946,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "9245:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9245:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3964,
                  "nodeType": "ExpressionStatement",
                  "src": "9245:189:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3980,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 3972,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3966,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "9446:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 3967,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requesterrestrict",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 478,
                            "src": "9446:34:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3970,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9492:1:19",
                                "subdenomination": null,
                                "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": 3969,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "9484:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 3968,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "9484:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 3971,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9484:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "9446:48:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3974,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "9513:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 3975,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requesterrestrict",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 478,
                              "src": "9513:34:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3976,
                                "name": "_requestorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3679,
                                "src": "9549:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                                }
                              },
                              "id": 3977,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requester",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 497,
                              "src": "9549:23:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3978,
                              "name": "GROUPMEMBER_PURPOSE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 222,
                              "src": "9578:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 3973,
                            "name": "_checkIdentity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6598,
                            "src": "9498:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (address,address,uint256) view returns (bool)"
                            }
                          },
                          "id": 3979,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9498:100:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "9446:152:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783162",
                        "id": 3981,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9600:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4ed45d85309e562d1e5c9e3d11630d7a36155bc002696b5ce28477ccf468fa60",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x1b\""
                        },
                        "value": "iExecV5-matchOrders-0x1b"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4ed45d85309e562d1e5c9e3d11630d7a36155bc002696b5ce28477ccf468fa60",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x1b\""
                        }
                      ],
                      "id": 3965,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "9438:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3982,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9438:189:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3983,
                  "nodeType": "ExpressionStatement",
                  "src": "9438:189:19"
                },
                {
                  "assignments": [
                    3985
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3985,
                      "mutability": "mutable",
                      "name": "ids",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4577,
                      "src": "9675:19:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                        "typeString": "struct Matching"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3984,
                        "name": "Matching",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3183,
                        "src": "9675:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_storage_ptr",
                          "typeString": "struct Matching"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3986,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9675:19:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3997,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3987,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "9698:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 3989,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "hasDataset",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3182,
                      "src": "9698:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 3996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3990,
                          "name": "_datasetorder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3675,
                          "src": "9715:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                            "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                          }
                        },
                        "id": 3991,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 443,
                        "src": "9715:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3994,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9748:1:19",
                            "subdenomination": null,
                            "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": 3993,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "9740:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 3992,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "9740:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 3995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9740:10:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "src": "9715:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "9698:52:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3998,
                  "nodeType": "ExpressionStatement",
                  "src": "9698:52:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4008,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3999,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "9764:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4001,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "apporderStruct",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3160,
                      "src": "9764:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4003,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "9803:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 4004,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 608,
                            "src": "9803:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_AppOrder_$441_memory_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_AppOrder_$441_memory_ptr_$",
                              "typeString": "function (struct IexecLibOrders_v5.AppOrder memory) pure returns (bytes32)"
                            }
                          },
                          "id": 4005,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9803:16:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4006,
                          "name": "EIP712DOMAIN_SEPARATOR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 224,
                          "src": "9821:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 4002,
                        "name": "_toEthTypedStruct",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6463,
                        "src": "9785:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                          "typeString": "function (bytes32,bytes32) pure returns (bytes memory)"
                        }
                      },
                      "id": 4007,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9785:59:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "9764:80:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "id": 4009,
                  "nodeType": "ExpressionStatement",
                  "src": "9764:80:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4010,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "9848:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4012,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "apporderHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3162,
                      "src": "9848:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4014,
                            "name": "ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3985,
                            "src": "9879:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                              "typeString": "struct Matching memory"
                            }
                          },
                          "id": 4015,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "apporderStruct",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3160,
                          "src": "9879:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 4013,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "9869:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 4016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9869:29:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "9848:50:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4018,
                  "nodeType": "ExpressionStatement",
                  "src": "9848:50:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4028,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4019,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "9902:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4021,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "appOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3164,
                      "src": "9902:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4023,
                                "name": "_apporder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3673,
                                "src": "9927:9:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                                }
                              },
                              "id": 4024,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "app",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 424,
                              "src": "9927:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 4022,
                            "name": "App",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8137,
                            "src": "9923:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_App_$8137_$",
                              "typeString": "type(contract App)"
                            }
                          },
                          "id": 4025,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9923:18:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_App_$8137",
                            "typeString": "contract App"
                          }
                        },
                        "id": 4026,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8050,
                        "src": "9923:24:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                          "typeString": "function () view external returns (address)"
                        }
                      },
                      "id": 4027,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9923:26:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "9902:47:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4029,
                  "nodeType": "ExpressionStatement",
                  "src": "9902:47:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4033,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "9989:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 4034,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "app",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 424,
                            "src": "9989:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4031,
                            "name": "m_appregistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 170,
                            "src": "9962:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IRegistry_$7780",
                              "typeString": "contract IRegistry"
                            }
                          },
                          "id": 4032,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isRegistered",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7779,
                          "src": "9962:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 4035,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9962:41:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783230",
                        "id": 4036,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10043:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_87a31e8874b04ba9e36927606e9050cbad73ab14601f027368bac64c184e8878",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x20\""
                        },
                        "value": "iExecV5-matchOrders-0x20"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_87a31e8874b04ba9e36927606e9050cbad73ab14601f027368bac64c184e8878",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x20\""
                        }
                      ],
                      "id": 4030,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "9954:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9954:116:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4038,
                  "nodeType": "ExpressionStatement",
                  "src": "9954:116:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4041,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "10112:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4042,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "appOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3164,
                            "src": "10112:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4043,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "10126:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4044,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "apporderStruct",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3160,
                            "src": "10126:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4045,
                              "name": "_apporder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3673,
                              "src": "10146:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                              }
                            },
                            "id": 4046,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sign",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 440,
                            "src": "10146:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 4040,
                          "name": "_checkPresignatureOrSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            6780,
                            6805
                          ],
                          "referencedDeclaration": 6805,
                          "src": "10082:29:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                          }
                        },
                        "id": 4047,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10082:79:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783231",
                        "id": 4048,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10163:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d979440d505335c33529ec0e29aa61d8b77dcf0196d8edaffba15fbfd90ac849",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x21\""
                        },
                        "value": "iExecV5-matchOrders-0x21"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d979440d505335c33529ec0e29aa61d8b77dcf0196d8edaffba15fbfd90ac849",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x21\""
                        }
                      ],
                      "id": 4039,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "10074:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10074:116:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4050,
                  "nodeType": "ExpressionStatement",
                  "src": "10074:116:19"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 4051,
                      "name": "ids",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3985,
                      "src": "10212:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                        "typeString": "struct Matching memory"
                      }
                    },
                    "id": 4052,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "hasDataset",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 3182,
                    "src": "10212:14:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4106,
                  "nodeType": "IfStatement",
                  "src": "10208:554:19",
                  "trueBody": {
                    "id": 4105,
                    "nodeType": "Block",
                    "src": "10266:496:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4062,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4053,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "10271:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4055,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "datasetorderStruct",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3166,
                            "src": "10271:22:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4057,
                                    "name": "_datasetorder",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3675,
                                    "src": "10314:13:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                      "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                    }
                                  },
                                  "id": 4058,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "hash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 639,
                                  "src": "10314:18:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_DatasetOrder_$460_memory_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_DatasetOrder_$460_memory_ptr_$",
                                    "typeString": "function (struct IexecLibOrders_v5.DatasetOrder memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 4059,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10314:20:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 4060,
                                "name": "EIP712DOMAIN_SEPARATOR",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 224,
                                "src": "10336:22:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 4056,
                              "name": "_toEthTypedStruct",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6463,
                              "src": "10296:17:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function (bytes32,bytes32) pure returns (bytes memory)"
                              }
                            },
                            "id": 4061,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10296:63:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "src": "10271:88:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 4063,
                        "nodeType": "ExpressionStatement",
                        "src": "10271:88:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4071,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4064,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "10364:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4066,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "datasetorderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3168,
                            "src": "10364:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4068,
                                  "name": "ids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3985,
                                  "src": "10399:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                    "typeString": "struct Matching memory"
                                  }
                                },
                                "id": 4069,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "datasetorderStruct",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3166,
                                "src": "10399:22:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 4067,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -8,
                              "src": "10389:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 4070,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10389:33:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "10364:58:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 4072,
                        "nodeType": "ExpressionStatement",
                        "src": "10364:58:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4082,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4073,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "10427:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4075,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "datasetOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3170,
                            "src": "10427:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4077,
                                      "name": "_datasetorder",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3675,
                                      "src": "10460:13:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                        "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                      }
                                    },
                                    "id": 4078,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "dataset",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 443,
                                    "src": "10460:21:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 4076,
                                  "name": "Dataset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8288,
                                  "src": "10452:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Dataset_$8288_$",
                                    "typeString": "type(contract Dataset)"
                                  }
                                },
                                "id": 4079,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10452:30:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Dataset_$8288",
                                  "typeString": "contract Dataset"
                                }
                              },
                              "id": 4080,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 8050,
                              "src": "10452:36:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                "typeString": "function () view external returns (address)"
                              }
                            },
                            "id": 4081,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10452:38:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "10427:63:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 4083,
                        "nodeType": "ExpressionStatement",
                        "src": "10427:63:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4087,
                                    "name": "_datasetorder",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3675,
                                    "src": "10535:13:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                      "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                    }
                                  },
                                  "id": 4088,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "dataset",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 443,
                                  "src": "10535:21:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4085,
                                  "name": "m_datasetregistry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 172,
                                  "src": "10504:17:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IRegistry_$7780",
                                    "typeString": "contract IRegistry"
                                  }
                                },
                                "id": 4086,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "isRegistered",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7779,
                                "src": "10504:30:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                                  "typeString": "function (address) view external returns (bool)"
                                }
                              },
                              "id": 4089,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10504:53:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "694578656356352d6d617463684f72646572732d30783330",
                              "id": 4090,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10597:26:19",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_248335991405d77420780aa4d9180936097ee4d9153fd1ff54056e5d09e9fab2",
                                "typeString": "literal_string \"iExecV5-matchOrders-0x30\""
                              },
                              "value": "iExecV5-matchOrders-0x30"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_248335991405d77420780aa4d9180936097ee4d9153fd1ff54056e5d09e9fab2",
                                "typeString": "literal_string \"iExecV5-matchOrders-0x30\""
                              }
                            ],
                            "id": 4084,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              -18,
                              -18
                            ],
                            "referencedDeclaration": -18,
                            "src": "10496:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 4091,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10496:128:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4092,
                        "nodeType": "ExpressionStatement",
                        "src": "10496:128:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4095,
                                    "name": "ids",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3985,
                                    "src": "10667:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                      "typeString": "struct Matching memory"
                                    }
                                  },
                                  "id": 4096,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "datasetOwner",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3170,
                                  "src": "10667:16:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4097,
                                    "name": "ids",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3985,
                                    "src": "10685:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                      "typeString": "struct Matching memory"
                                    }
                                  },
                                  "id": 4098,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "datasetorderStruct",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3166,
                                  "src": "10685:22:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4099,
                                    "name": "_datasetorder",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3675,
                                    "src": "10709:13:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                      "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                    }
                                  },
                                  "id": 4100,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sign",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 459,
                                  "src": "10709:18:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                ],
                                "id": 4094,
                                "name": "_checkPresignatureOrSignature",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [
                                  6780,
                                  6805
                                ],
                                "referencedDeclaration": 6805,
                                "src": "10637:29:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                                  "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                                }
                              },
                              "id": 4101,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10637:91:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "694578656356352d6d617463684f72646572732d30783331",
                              "id": 4102,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10730:26:19",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_0361b427f057d58d1476450e9c11db1ebc3751e144fbf84c1f8309403f778d09",
                                "typeString": "literal_string \"iExecV5-matchOrders-0x31\""
                              },
                              "value": "iExecV5-matchOrders-0x31"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_0361b427f057d58d1476450e9c11db1ebc3751e144fbf84c1f8309403f778d09",
                                "typeString": "literal_string \"iExecV5-matchOrders-0x31\""
                              }
                            ],
                            "id": 4093,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              -18,
                              -18
                            ],
                            "referencedDeclaration": -18,
                            "src": "10629:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 4103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10629:128:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 4104,
                        "nodeType": "ExpressionStatement",
                        "src": "10629:128:19"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4116,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4107,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "10782:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4109,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "workerpoolorderStruct",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3172,
                      "src": "10782:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4111,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "10828:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 4112,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 674,
                            "src": "10828:21:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_WorkerpoolOrder_$483_memory_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_WorkerpoolOrder_$483_memory_ptr_$",
                              "typeString": "function (struct IexecLibOrders_v5.WorkerpoolOrder memory) pure returns (bytes32)"
                            }
                          },
                          "id": 4113,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10828:23:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4114,
                          "name": "EIP712DOMAIN_SEPARATOR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 224,
                          "src": "10853:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 4110,
                        "name": "_toEthTypedStruct",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6463,
                        "src": "10810:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                          "typeString": "function (bytes32,bytes32) pure returns (bytes memory)"
                        }
                      },
                      "id": 4115,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10810:66:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "10782:94:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "id": 4117,
                  "nodeType": "ExpressionStatement",
                  "src": "10782:94:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4125,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4118,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "10880:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4120,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "workerpoolorderHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3174,
                      "src": "10880:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4122,
                            "name": "ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3985,
                            "src": "10918:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                              "typeString": "struct Matching memory"
                            }
                          },
                          "id": 4123,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpoolorderStruct",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3172,
                          "src": "10918:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 4121,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "10908:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 4124,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10908:36:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "10880:64:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4126,
                  "nodeType": "ExpressionStatement",
                  "src": "10880:64:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4127,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "10948:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4129,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "workerpoolOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3176,
                      "src": "10948:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4131,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "10987:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 4132,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 462,
                              "src": "10987:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 4130,
                            "name": "Workerpool",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8459,
                            "src": "10976:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Workerpool_$8459_$",
                              "typeString": "type(contract Workerpool)"
                            }
                          },
                          "id": 4133,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10976:39:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Workerpool_$8459",
                            "typeString": "contract Workerpool"
                          }
                        },
                        "id": 4134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8050,
                        "src": "10976:45:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                          "typeString": "function () view external returns (address)"
                        }
                      },
                      "id": 4135,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10976:47:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "10948:75:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4137,
                  "nodeType": "ExpressionStatement",
                  "src": "10948:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4141,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "11070:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 4142,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpool",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 462,
                            "src": "11070:27:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4139,
                            "name": "m_workerpoolregistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 174,
                            "src": "11036:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IRegistry_$7780",
                              "typeString": "contract IRegistry"
                            }
                          },
                          "id": 4140,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isRegistered",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7779,
                          "src": "11036:33:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view external returns (bool)"
                          }
                        },
                        "id": 4143,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11036:62:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783430",
                        "id": 4144,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11138:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_68b9f774e6537c559babbc1afba0c516d0101735ad4481d99158d211f9bb5102",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x40\""
                        },
                        "value": "iExecV5-matchOrders-0x40"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_68b9f774e6537c559babbc1afba0c516d0101735ad4481d99158d211f9bb5102",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x40\""
                        }
                      ],
                      "id": 4138,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "11028:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4145,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11028:137:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4146,
                  "nodeType": "ExpressionStatement",
                  "src": "11028:137:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4149,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "11207:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4150,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpoolOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3176,
                            "src": "11207:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4151,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "11228:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4152,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpoolorderStruct",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3172,
                            "src": "11228:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4153,
                              "name": "_workerpoolorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3677,
                              "src": "11255:16:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                              }
                            },
                            "id": 4154,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sign",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 482,
                            "src": "11255:21:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 4148,
                          "name": "_checkPresignatureOrSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            6780,
                            6805
                          ],
                          "referencedDeclaration": 6805,
                          "src": "11177:29:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                          }
                        },
                        "id": 4155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11177:100:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783431",
                        "id": 4156,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11279:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_11665fe3bc6c7efad8eaeee9eb8535182240fda33c3f129bbfe2daee0cd1ab77",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x41\""
                        },
                        "value": "iExecV5-matchOrders-0x41"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_11665fe3bc6c7efad8eaeee9eb8535182240fda33c3f129bbfe2daee0cd1ab77",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x41\""
                        }
                      ],
                      "id": 4147,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "11169:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4157,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11169:137:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4158,
                  "nodeType": "ExpressionStatement",
                  "src": "11169:137:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4168,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4159,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "11324:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4161,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "requestorderStruct",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3178,
                      "src": "11324:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4163,
                              "name": "_requestorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3679,
                              "src": "11367:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                              }
                            },
                            "id": 4164,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "hash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 730,
                            "src": "11367:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_pure$_t_struct$_RequestOrder_$516_memory_ptr_$returns$_t_bytes32_$bound_to$_t_struct$_RequestOrder_$516_memory_ptr_$",
                              "typeString": "function (struct IexecLibOrders_v5.RequestOrder memory) pure returns (bytes32)"
                            }
                          },
                          "id": 4165,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11367:20:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4166,
                          "name": "EIP712DOMAIN_SEPARATOR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 224,
                          "src": "11389:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 4162,
                        "name": "_toEthTypedStruct",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6463,
                        "src": "11349:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                          "typeString": "function (bytes32,bytes32) pure returns (bytes memory)"
                        }
                      },
                      "id": 4167,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11349:63:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "11324:88:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "id": 4169,
                  "nodeType": "ExpressionStatement",
                  "src": "11324:88:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4170,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "11416:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4172,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "requestorderHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3180,
                      "src": "11416:20:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4174,
                            "name": "ids",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3985,
                            "src": "11451:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                              "typeString": "struct Matching memory"
                            }
                          },
                          "id": 4175,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "requestorderStruct",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3178,
                          "src": "11451:22:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 4173,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -8,
                        "src": "11441:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 4176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11441:33:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "11416:58:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4178,
                  "nodeType": "ExpressionStatement",
                  "src": "11416:58:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4181,
                              "name": "_requestorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3679,
                              "src": "11516:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                              }
                            },
                            "id": 4182,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requester",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 497,
                            "src": "11516:23:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4183,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "11541:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4184,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requestorderStruct",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3178,
                            "src": "11541:22:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4185,
                              "name": "_requestorder",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3679,
                              "src": "11565:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                              }
                            },
                            "id": 4186,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sign",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 515,
                            "src": "11565:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 4180,
                          "name": "_checkPresignatureOrSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            6780,
                            6805
                          ],
                          "referencedDeclaration": 6805,
                          "src": "11486:29:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                          }
                        },
                        "id": 4187,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11486:98:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783530",
                        "id": 4188,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11586:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_68a361fd1b835dd41be1f02038934644cc2fe461b00a8ad3a7224d2e1cdcc213",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x50\""
                        },
                        "value": "iExecV5-matchOrders-0x50"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_68a361fd1b835dd41be1f02038934644cc2fe461b00a8ad3a7224d2e1cdcc213",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x50\""
                        }
                      ],
                      "id": 4179,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "11478:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11478:135:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4190,
                  "nodeType": "ExpressionStatement",
                  "src": "11478:135:19"
                },
                {
                  "assignments": [
                    4192
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4192,
                      "mutability": "mutable",
                      "name": "volume",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4577,
                      "src": "11654:14:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4191,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11654:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4193,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11654:14:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4203,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4194,
                      "name": "volume",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4192,
                      "src": "11672:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4198,
                            "name": "m_consumed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 232,
                            "src": "11737:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4201,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4199,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "11748:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4200,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "apporderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3162,
                            "src": "11748:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11737:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4195,
                            "name": "_apporder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3673,
                            "src": "11709:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                            }
                          },
                          "id": 4196,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "volume",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 428,
                          "src": "11709:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4197,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10389,
                        "src": "11709:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4202,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11709:64:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11672:101:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4204,
                  "nodeType": "ExpressionStatement",
                  "src": "11672:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4221,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4205,
                      "name": "volume",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4192,
                      "src": "11777:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4206,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "11786:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4207,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "hasDataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3182,
                        "src": "11786:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 4219,
                        "name": "volume",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4192,
                        "src": "11882:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 4220,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "11786:102:19",
                      "trueExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4213,
                                  "name": "m_consumed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 232,
                                  "src": "11842:10:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                    "typeString": "mapping(bytes32 => uint256)"
                                  }
                                },
                                "id": 4216,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4214,
                                    "name": "ids",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3985,
                                    "src": "11853:3:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                      "typeString": "struct Matching memory"
                                    }
                                  },
                                  "id": 4215,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "datasetorderHash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3168,
                                  "src": "11853:20:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "11842:35:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4210,
                                  "name": "_datasetorder",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3675,
                                  "src": "11814:13:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                                    "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                                  }
                                },
                                "id": 4211,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "volume",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 447,
                                "src": "11814:20:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4212,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10389,
                              "src": "11814:24:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4217,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11814:64:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4208,
                            "name": "volume",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4192,
                            "src": "11803:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4209,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "min",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10505,
                          "src": "11803:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 4218,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11803:76:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11777:111:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4222,
                  "nodeType": "ExpressionStatement",
                  "src": "11777:111:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4235,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4223,
                      "name": "volume",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4192,
                      "src": "11892:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4229,
                                "name": "m_consumed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 232,
                                "src": "11957:10:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                  "typeString": "mapping(bytes32 => uint256)"
                                }
                              },
                              "id": 4232,
                              "indexExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4230,
                                  "name": "ids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3985,
                                  "src": "11968:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                    "typeString": "struct Matching memory"
                                  }
                                },
                                "id": 4231,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "workerpoolorderHash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3174,
                                "src": "11968:23:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11957:35:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4226,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "11929:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 4227,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "volume",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 466,
                              "src": "11929:23:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4228,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sub",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10389,
                            "src": "11929:27:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 4233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11929:64:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 4224,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "11918:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "min",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10505,
                        "src": "11918:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4234,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11918:76:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11892:102:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4236,
                  "nodeType": "ExpressionStatement",
                  "src": "11892:102:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4249,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4237,
                      "name": "volume",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4192,
                      "src": "11998:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 4243,
                                "name": "m_consumed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 232,
                                "src": "12063:10:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                  "typeString": "mapping(bytes32 => uint256)"
                                }
                              },
                              "id": 4246,
                              "indexExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4244,
                                  "name": "ids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3985,
                                  "src": "12074:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                    "typeString": "struct Matching memory"
                                  }
                                },
                                "id": 4245,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "requestorderHash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3180,
                                "src": "12074:20:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "12063:35:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4240,
                                "name": "_requestorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3679,
                                "src": "12035:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                                }
                              },
                              "id": 4241,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "volume",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 499,
                              "src": "12035:20:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4242,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sub",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10389,
                            "src": "12035:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 4247,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12035:64:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 4238,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "12024:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4239,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "min",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10505,
                        "src": "12024:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4248,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12024:76:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11998:102:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4250,
                  "nodeType": "ExpressionStatement",
                  "src": "11998:102:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4254,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4252,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "12112:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 4253,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12121:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12112:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "694578656356352d6d617463684f72646572732d30783630",
                        "id": 4255,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12124:26:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7d0b10b14c742827d8e27989e6cf7c0ff2ca632c2ab7fdd3df3c24fa415d2ad0",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x60\""
                        },
                        "value": "iExecV5-matchOrders-0x60"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7d0b10b14c742827d8e27989e6cf7c0ff2ca632c2ab7fdd3df3c24fa415d2ad0",
                          "typeString": "literal_string \"iExecV5-matchOrders-0x60\""
                        }
                      ],
                      "id": 4251,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "12104:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 4256,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12104:47:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4257,
                  "nodeType": "ExpressionStatement",
                  "src": "12104:47:19"
                },
                {
                  "assignments": [
                    4259
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4259,
                      "mutability": "mutable",
                      "name": "dealid",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4577,
                      "src": "12180:14:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4258,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "12180:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4271,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4263,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "12228:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4264,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requestorderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3180,
                            "src": "12228:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 4265,
                              "name": "m_consumed",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 232,
                              "src": "12279:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 4268,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4266,
                                "name": "ids",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3985,
                                "src": "12290:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                  "typeString": "struct Matching memory"
                                }
                              },
                              "id": 4267,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "requestorderHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3180,
                              "src": "12290:20:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12279:32:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4261,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "12207:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 4262,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12207:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 4269,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12207:132:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 4260,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "12197:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12197:143:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12180:160:19"
                },
                {
                  "assignments": [
                    4275
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4275,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4577,
                      "src": "12345:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4274,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "12345:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4279,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4276,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "12381:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 4278,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4277,
                      "name": "dealid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4259,
                      "src": "12389:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12381:15:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12345:51:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4287,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4280,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12400:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4283,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "app",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 291,
                        "src": "12400:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4284,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "pointer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 284,
                      "src": "12400:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4285,
                        "name": "_apporder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3673,
                        "src": "12428:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                        }
                      },
                      "id": 4286,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "app",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 424,
                      "src": "12428:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12400:41:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4288,
                  "nodeType": "ExpressionStatement",
                  "src": "12400:41:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4296,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4289,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12445:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4292,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "app",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 291,
                        "src": "12445:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4293,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 286,
                      "src": "12445:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4294,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "12473:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4295,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "appOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3164,
                      "src": "12473:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12445:40:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4297,
                  "nodeType": "ExpressionStatement",
                  "src": "12445:40:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4305,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4298,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12489:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4301,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "app",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 291,
                        "src": "12489:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4302,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 288,
                      "src": "12489:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4303,
                        "name": "_apporder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3673,
                        "src": "12517:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.AppOrder memory"
                        }
                      },
                      "id": 4304,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "appprice",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 426,
                      "src": "12517:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12489:46:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4306,
                  "nodeType": "ExpressionStatement",
                  "src": "12489:46:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4314,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4307,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12539:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4310,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 293,
                        "src": "12539:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4311,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 286,
                      "src": "12539:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4312,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "12567:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4313,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "datasetOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3170,
                      "src": "12567:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12539:44:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4315,
                  "nodeType": "ExpressionStatement",
                  "src": "12539:44:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4323,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4316,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12587:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4319,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 293,
                        "src": "12587:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4320,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "pointer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 284,
                      "src": "12587:20:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4321,
                        "name": "_datasetorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3675,
                        "src": "12615:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                        }
                      },
                      "id": 4322,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dataset",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 443,
                      "src": "12615:21:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12587:49:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4324,
                  "nodeType": "ExpressionStatement",
                  "src": "12587:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4336,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4325,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12640:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4328,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 293,
                        "src": "12640:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4329,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 288,
                      "src": "12640:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4330,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "12668:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4331,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "hasDataset",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3182,
                        "src": "12668:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4334,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12714:1:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "id": 4335,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "12668:47:19",
                      "trueExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4332,
                          "name": "_datasetorder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3675,
                          "src": "12685:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                            "typeString": "struct IexecLibOrders_v5.DatasetOrder memory"
                          }
                        },
                        "id": 4333,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "datasetprice",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 445,
                        "src": "12685:26:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12640:75:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4337,
                  "nodeType": "ExpressionStatement",
                  "src": "12640:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4345,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4338,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12719:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4341,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerpool",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 295,
                        "src": "12719:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4342,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "pointer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 284,
                      "src": "12719:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4343,
                        "name": "_workerpoolorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3677,
                        "src": "12747:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                        }
                      },
                      "id": 4344,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "workerpool",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 462,
                      "src": "12747:27:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12719:55:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4346,
                  "nodeType": "ExpressionStatement",
                  "src": "12719:55:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4354,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4347,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12778:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4350,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerpool",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 295,
                        "src": "12778:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4351,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 286,
                      "src": "12778:21:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4352,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3985,
                        "src": "12806:3:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                          "typeString": "struct Matching memory"
                        }
                      },
                      "id": 4353,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "workerpoolOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3176,
                      "src": "12806:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "12778:47:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4355,
                  "nodeType": "ExpressionStatement",
                  "src": "12778:47:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4363,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4356,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "12829:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4359,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerpool",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 295,
                        "src": "12829:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Resource_$289_storage",
                          "typeString": "struct IexecLibCore_v5.Resource storage ref"
                        }
                      },
                      "id": 4360,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 288,
                      "src": "12829:21:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4361,
                        "name": "_workerpoolorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3677,
                        "src": "12857:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                        }
                      },
                      "id": 4362,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "workerpoolprice",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 464,
                      "src": "12857:32:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12829:60:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4364,
                  "nodeType": "ExpressionStatement",
                  "src": "12829:60:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4373,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4365,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "12893:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4367,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "trust",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 297,
                      "src": "12893:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 4371,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12945:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4368,
                            "name": "_requestorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3679,
                            "src": "12921:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                            }
                          },
                          "id": 4369,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "trust",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 505,
                          "src": "12921:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4370,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "max",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10487,
                        "src": "12921:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4372,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12921:26:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12893:54:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4374,
                  "nodeType": "ExpressionStatement",
                  "src": "12893:54:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4380,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4375,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "12951:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4377,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "category",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 299,
                      "src": "12951:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4378,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "12979:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 4379,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "category",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 503,
                      "src": "12979:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12951:50:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4381,
                  "nodeType": "ExpressionStatement",
                  "src": "12951:50:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4386,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4382,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13005:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4384,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "tag",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 301,
                      "src": "13005:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4385,
                      "name": "tag",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3686,
                      "src": "13033:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "13005:31:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4387,
                  "nodeType": "ExpressionStatement",
                  "src": "13005:31:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4393,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4388,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13040:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4390,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "requester",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 303,
                      "src": "13040:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4391,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "13068:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 4392,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "requester",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 497,
                      "src": "13068:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "13040:51:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4394,
                  "nodeType": "ExpressionStatement",
                  "src": "13040:51:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4400,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4395,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13095:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4397,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "beneficiary",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 305,
                      "src": "13095:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4398,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "13123:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 4399,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "beneficiary",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 507,
                      "src": "13123:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "13095:53:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4401,
                  "nodeType": "ExpressionStatement",
                  "src": "13095:53:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4407,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4402,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13152:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4404,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "callback",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 307,
                      "src": "13152:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4405,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "13180:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 4406,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "callback",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 509,
                      "src": "13180:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "13152:50:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4408,
                  "nodeType": "ExpressionStatement",
                  "src": "13152:50:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4414,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4409,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13206:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4411,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "params",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 309,
                      "src": "13206:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4412,
                        "name": "_requestorder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3679,
                        "src": "13234:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                          "typeString": "struct IexecLibOrders_v5.RequestOrder memory"
                        }
                      },
                      "id": 4413,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "params",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 511,
                      "src": "13234:20:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "13206:48:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 4415,
                  "nodeType": "ExpressionStatement",
                  "src": "13206:48:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4420,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4416,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13258:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4418,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 311,
                      "src": "13258:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4419,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -17,
                      "src": "13286:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13258:31:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4421,
                  "nodeType": "ExpressionStatement",
                  "src": "13258:31:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4429,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4422,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13293:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4424,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "botFirst",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 313,
                      "src": "13293:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4425,
                        "name": "m_consumed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "13321:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4428,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4426,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "13332:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4427,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requestorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3180,
                        "src": "13332:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "13321:32:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13293:60:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4430,
                  "nodeType": "ExpressionStatement",
                  "src": "13293:60:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4431,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13357:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4433,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "botSize",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 315,
                      "src": "13357:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4434,
                      "name": "volume",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4192,
                      "src": "13385:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13357:34:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4436,
                  "nodeType": "ExpressionStatement",
                  "src": "13357:34:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4437,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13395:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4439,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "workerStake",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 317,
                      "src": "13395:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4444,
                                    "name": "_workerpoolorder",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3677,
                                    "src": "13478:16:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                      "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                    }
                                  },
                                  "id": 4445,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "workerpool",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 462,
                                  "src": "13478:27:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 4443,
                                "name": "Workerpool",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8459,
                                "src": "13467:10:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Workerpool_$8459_$",
                                  "typeString": "type(contract Workerpool)"
                                }
                              },
                              "id": 4446,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "13467:39:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Workerpool_$8459",
                                "typeString": "contract Workerpool"
                              }
                            },
                            "id": 4447,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "m_workerStakeRatioPolicy",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 8390,
                            "src": "13467:64:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 4448,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13467:66:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4440,
                            "name": "_workerpoolorder",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3677,
                            "src": "13423:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                              "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                            }
                          },
                          "id": 4441,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpoolprice",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 464,
                          "src": "13423:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4442,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "percentage",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10543,
                        "src": "13423:43:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13423:111:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13395:139:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4451,
                  "nodeType": "ExpressionStatement",
                  "src": "13395:139:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4452,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4275,
                        "src": "13538:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                        }
                      },
                      "id": 4454,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "schedulerRewardRatio",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 319,
                      "src": "13538:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4456,
                                "name": "_workerpoolorder",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3677,
                                "src": "13577:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                                  "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder memory"
                                }
                              },
                              "id": 4457,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "workerpool",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 462,
                              "src": "13577:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 4455,
                            "name": "Workerpool",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8459,
                            "src": "13566:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Workerpool_$8459_$",
                              "typeString": "type(contract Workerpool)"
                            }
                          },
                          "id": 4458,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13566:39:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Workerpool_$8459",
                            "typeString": "contract Workerpool"
                          }
                        },
                        "id": 4459,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "m_schedulerRewardRatioPolicy",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8392,
                        "src": "13566:68:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                          "typeString": "function () view external returns (uint256)"
                        }
                      },
                      "id": 4460,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13566:70:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13538:98:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4462,
                  "nodeType": "ExpressionStatement",
                  "src": "13538:98:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4474,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4463,
                        "name": "m_consumed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "13674:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4466,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4464,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "13685:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4465,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "apporderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3162,
                        "src": "13685:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "13674:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4472,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "13769:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4467,
                            "name": "m_consumed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 232,
                            "src": "13712:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4470,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4468,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "13723:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4469,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "apporderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3162,
                            "src": "13723:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13712:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4471,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "13712:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4473,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13712:68:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13674:106:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4475,
                  "nodeType": "ExpressionStatement",
                  "src": "13674:106:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4491,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4476,
                        "name": "m_consumed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "13784:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4479,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4477,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "13795:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4478,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "datasetorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3168,
                        "src": "13795:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "13784:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "condition": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4485,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "13862:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4486,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "hasDataset",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3182,
                            "src": "13862:14:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4488,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13888:1:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "id": 4489,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "13862:27:19",
                          "trueExpression": {
                            "argumentTypes": null,
                            "id": 4487,
                            "name": "volume",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4192,
                            "src": "13879:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4480,
                            "name": "m_consumed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 232,
                            "src": "13822:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4483,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4481,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "13833:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4482,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "datasetorderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3168,
                            "src": "13833:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13822:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4484,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "13822:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4490,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13822:68:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13784:106:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4492,
                  "nodeType": "ExpressionStatement",
                  "src": "13784:106:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4504,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4493,
                        "name": "m_consumed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "13894:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4496,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4494,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "13905:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4495,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerpoolorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3174,
                        "src": "13905:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "13894:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4502,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "13989:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4497,
                            "name": "m_consumed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 232,
                            "src": "13932:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4500,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4498,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "13943:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4499,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "workerpoolorderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3174,
                            "src": "13943:23:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "13932:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4501,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "13932:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4503,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13932:68:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13894:106:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4505,
                  "nodeType": "ExpressionStatement",
                  "src": "13894:106:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4517,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4506,
                        "name": "m_consumed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "14004:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4509,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4507,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "14015:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4508,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requestorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3180,
                        "src": "14015:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "14004:35:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4515,
                          "name": "volume",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4192,
                          "src": "14099:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 4510,
                            "name": "m_consumed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 232,
                            "src": "14042:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4513,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4511,
                              "name": "ids",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3985,
                              "src": "14053:3:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                                "typeString": "struct Matching memory"
                              }
                            },
                            "id": 4512,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "requestorderHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3180,
                            "src": "14053:20:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "14042:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "14042:39:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4516,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14042:68:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14004:106:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4518,
                  "nodeType": "ExpressionStatement",
                  "src": "14004:106:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4520,
                          "name": "deal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4275,
                          "src": "14146:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                          }
                        },
                        "id": 4521,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requester",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 303,
                        "src": "14146:14:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4536,
                            "name": "volume",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4192,
                            "src": "14247:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4531,
                                    "name": "deal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4275,
                                    "src": "14216:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                      "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                    }
                                  },
                                  "id": 4532,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "workerpool",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 295,
                                  "src": "14216:15:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Resource_$289_storage",
                                    "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                  }
                                },
                                "id": 4533,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "price",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 288,
                                "src": "14216:21:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 4526,
                                        "name": "deal",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4275,
                                        "src": "14188:4:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                        }
                                      },
                                      "id": 4527,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "dataset",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 293,
                                      "src": "14188:12:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Resource_$289_storage",
                                        "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                      }
                                    },
                                    "id": 4528,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "price",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 288,
                                    "src": "14188:18:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 4522,
                                        "name": "deal",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4275,
                                        "src": "14165:4:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                          "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                        }
                                      },
                                      "id": 4523,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "app",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 291,
                                      "src": "14165:8:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Resource_$289_storage",
                                        "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                      }
                                    },
                                    "id": 4524,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "price",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 288,
                                    "src": "14165:14:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 4525,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "add",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10364,
                                  "src": "14165:22:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 4529,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "14165:42:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4530,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10364,
                              "src": "14165:50:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4534,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14165:73:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4535,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "mul",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10423,
                          "src": "14165:81:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 4537,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14165:89:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4519,
                      "name": "lock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3292,
                      "src": "14137:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 4538,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14137:121:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4539,
                  "nodeType": "ExpressionStatement",
                  "src": "14137:121:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4541,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4275,
                            "src": "14271:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 4542,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "14271:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 4543,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 286,
                        "src": "14271:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4551,
                            "name": "volume",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4192,
                            "src": "14394:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 4548,
                                "name": "WORKERPOOL_STAKE_RATIO",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 210,
                                "src": "14334:22:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4544,
                                    "name": "deal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4275,
                                    "src": "14297:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                                      "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                                    }
                                  },
                                  "id": 4545,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "workerpool",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 295,
                                  "src": "14297:15:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Resource_$289_storage",
                                    "typeString": "struct IexecLibCore_v5.Resource storage ref"
                                  }
                                },
                                "id": 4546,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "price",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 288,
                                "src": "14297:21:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4547,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "percentage",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10543,
                              "src": "14297:36:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4549,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "14297:60:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4550,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "mul",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10423,
                          "src": "14297:96:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 4552,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14297:104:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4540,
                      "name": "lock",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3292,
                      "src": "14262:4:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 4553,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14262:194:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4554,
                  "nodeType": "ExpressionStatement",
                  "src": "14262:194:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4556,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4275,
                            "src": "14514:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal storage pointer"
                            }
                          },
                          "id": 4557,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "14514:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_storage",
                            "typeString": "struct IexecLibCore_v5.Resource storage ref"
                          }
                        },
                        "id": 4558,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "pointer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 284,
                        "src": "14514:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4559,
                        "name": "dealid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4259,
                        "src": "14539:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 4555,
                      "name": "SchedulerNotice",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7517,
                      "src": "14498:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32)"
                      }
                    },
                    "id": 4560,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14498:48:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4561,
                  "nodeType": "EmitStatement",
                  "src": "14493:53:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4563,
                        "name": "dealid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4259,
                        "src": "14613:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4564,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "14624:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4565,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "apporderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3162,
                        "src": "14624:16:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4566,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "14645:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4567,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "datasetorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3168,
                        "src": "14645:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4568,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "14670:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4569,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "workerpoolorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3174,
                        "src": "14670:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4570,
                          "name": "ids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3985,
                          "src": "14698:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Matching_$3183_memory_ptr",
                            "typeString": "struct Matching memory"
                          }
                        },
                        "id": 4571,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "requestorderHash",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3180,
                        "src": "14698:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4572,
                        "name": "volume",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4192,
                        "src": "14723:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 4562,
                      "name": "OrdersMatched",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7511,
                      "src": "14595:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,bytes32,bytes32,bytes32,bytes32,uint256)"
                      }
                    },
                    "id": 4573,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14595:138:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4574,
                  "nodeType": "EmitStatement",
                  "src": "14590:143:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4575,
                    "name": "dealid",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4259,
                    "src": "14745:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3684,
                  "id": 4576,
                  "nodeType": "Return",
                  "src": "14738:13:19"
                }
              ]
            },
            "documentation": {
              "id": 3671,
              "nodeType": "StructuredDocumentation",
              "src": "5642:233:19",
              "text": "*************************************************************************\n                          ODB order matching                            ***************************************************************************"
            },
            "functionSelector": "156194d4",
            "id": 4578,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "matchOrders",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 3681,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6161:8:19"
            },
            "parameters": {
              "id": 3680,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3673,
                  "mutability": "mutable",
                  "name": "_apporder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4578,
                  "src": "5924:50:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AppOrder_$441_memory_ptr",
                    "typeString": "struct IexecLibOrders_v5.AppOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3672,
                    "name": "IexecLibOrders_v5.AppOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 441,
                    "src": "5924:26:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AppOrder_$441_storage_ptr",
                      "typeString": "struct IexecLibOrders_v5.AppOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3675,
                  "mutability": "mutable",
                  "name": "_datasetorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4578,
                  "src": "5978:54:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DatasetOrder_$460_memory_ptr",
                    "typeString": "struct IexecLibOrders_v5.DatasetOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3674,
                    "name": "IexecLibOrders_v5.DatasetOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 460,
                    "src": "5978:30:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DatasetOrder_$460_storage_ptr",
                      "typeString": "struct IexecLibOrders_v5.DatasetOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3677,
                  "mutability": "mutable",
                  "name": "_workerpoolorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4578,
                  "src": "6036:57:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_memory_ptr",
                    "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3676,
                    "name": "IexecLibOrders_v5.WorkerpoolOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 483,
                    "src": "6036:33:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_WorkerpoolOrder_$483_storage_ptr",
                      "typeString": "struct IexecLibOrders_v5.WorkerpoolOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3679,
                  "mutability": "mutable",
                  "name": "_requestorder",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4578,
                  "src": "6097:54:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestOrder_$516_memory_ptr",
                    "typeString": "struct IexecLibOrders_v5.RequestOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3678,
                    "name": "IexecLibOrders_v5.RequestOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 516,
                    "src": "6097:30:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestOrder_$516_storage_ptr",
                      "typeString": "struct IexecLibOrders_v5.RequestOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5920:232:19"
            },
            "returnParameters": {
              "id": 3684,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3683,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4578,
                  "src": "6179:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3682,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6179:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6178:9:19"
            },
            "scope": 6368,
            "src": "5900:8855:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7624
            ],
            "body": {
              "id": 4716,
              "nodeType": "Block",
              "src": "15079:891:19",
              "statements": [
                {
                  "assignments": [
                    4592
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4592,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4716,
                      "src": "15083:32:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4591,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "15083:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4596,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4593,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "15118:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 4595,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4594,
                      "name": "_dealid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4581,
                      "src": "15126:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15118:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15083:51:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4601,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4598,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4583,
                          "src": "15147:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4599,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4592,
                            "src": "15154:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 4600,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "botFirst",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 313,
                          "src": "15154:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "15147:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4597,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "15139:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4602,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15139:47:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4603,
                  "nodeType": "ExpressionStatement",
                  "src": "15139:47:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4612,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4605,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4583,
                          "src": "15198:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4609,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4592,
                                "src": "15223:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal memory"
                                }
                              },
                              "id": 4610,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "botSize",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 315,
                              "src": "15223:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4606,
                                "name": "deal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4592,
                                "src": "15205:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                  "typeString": "struct IexecLibCore_v5.Deal memory"
                                }
                              },
                              "id": 4607,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "botFirst",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 313,
                              "src": "15205:13:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4608,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "add",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10364,
                            "src": "15205:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 4611,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15205:31:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "15198:38:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4604,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "15190:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4613,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15190:47:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4614,
                  "nodeType": "ExpressionStatement",
                  "src": "15190:47:19"
                },
                {
                  "assignments": [
                    4616
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4616,
                      "mutability": "mutable",
                      "name": "taskid",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4716,
                      "src": "15242:14:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 4615,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "15242:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4624,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4620,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4581,
                            "src": "15287:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4621,
                            "name": "idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4583,
                            "src": "15296:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4618,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "15270:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 4619,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15270:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 4622,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15270:30:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 4617,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "15260:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 4623,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15260:41:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15242:59:19"
                },
                {
                  "assignments": [
                    4628
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4628,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4716,
                      "src": "15305:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4627,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "15305:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4632,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4629,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "15341:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 4631,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4630,
                      "name": "taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4616,
                      "src": "15349:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15341:15:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15305:51:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 4639,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4634,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4628,
                            "src": "15368:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 4635,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "15368:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4636,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "15383:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 4637,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "15383:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 4638,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "UNSET",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15383:36:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "15368:51:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4633,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "15360:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4640,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15360:60:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4641,
                  "nodeType": "ExpressionStatement",
                  "src": "15360:60:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4648,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4642,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15425:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4644,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 328,
                      "src": "15425:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4645,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "15453:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 4646,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "TaskStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 326,
                        "src": "15453:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                          "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                        }
                      },
                      "id": 4647,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "ACTIVE",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15453:37:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "src": "15425:65:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                      "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                    }
                  },
                  "id": 4649,
                  "nodeType": "ExpressionStatement",
                  "src": "15425:65:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4650,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15494:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4652,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "dealid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 330,
                      "src": "15494:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4653,
                      "name": "_dealid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4581,
                      "src": "15522:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "15494:35:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4655,
                  "nodeType": "ExpressionStatement",
                  "src": "15494:35:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4656,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15533:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4658,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "idx",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 332,
                      "src": "15533:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4659,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4583,
                      "src": "15561:3:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15533:31:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4661,
                  "nodeType": "ExpressionStatement",
                  "src": "15533:31:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4662,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15568:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4664,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeref",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 334,
                      "src": "15568:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 4665,
                          "name": "m_categories",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 261,
                          "src": "15596:12:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_Category_$282_storage_$dyn_storage",
                            "typeString": "struct IexecLibCore_v5.Category storage ref[] storage ref"
                          }
                        },
                        "id": 4668,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4666,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4592,
                            "src": "15609:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 4667,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "category",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 299,
                          "src": "15609:13:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15596:27:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Category_$282_storage",
                          "typeString": "struct IexecLibCore_v5.Category storage ref"
                        }
                      },
                      "id": 4669,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "workClockTimeRef",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 281,
                      "src": "15596:44:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15568:72:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4671,
                  "nodeType": "ExpressionStatement",
                  "src": "15568:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4684,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4672,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15644:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4674,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "contributionDeadline",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 336,
                      "src": "15644:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4681,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4592,
                            "src": "15722:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 4682,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "startTime",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 311,
                          "src": "15722:14:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4678,
                              "name": "CONTRIBUTION_DEADLINE_RATIO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 201,
                              "src": "15689:27:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4675,
                                "name": "task",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4628,
                                "src": "15672:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                }
                              },
                              "id": 4676,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeref",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 334,
                              "src": "15672:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4677,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "mul",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10423,
                            "src": "15672:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 4679,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15672:45:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4680,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "15672:49:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4683,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15672:65:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15644:93:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4685,
                  "nodeType": "ExpressionStatement",
                  "src": "15644:93:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4698,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4686,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4628,
                        "src": "15741:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4688,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalDeadline",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 340,
                      "src": "15741:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4695,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4592,
                            "src": "15819:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 4696,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "startTime",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 311,
                          "src": "15819:14:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4692,
                              "name": "FINAL_DEADLINE_RATIO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 207,
                              "src": "15793:20:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 4689,
                                "name": "task",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4628,
                                "src": "15769:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                }
                              },
                              "id": 4690,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeref",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 334,
                              "src": "15769:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4691,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "mul",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10423,
                            "src": "15769:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 4693,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15769:45:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4694,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "15769:49:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4697,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15769:65:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15741:93:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4699,
                  "nodeType": "ExpressionStatement",
                  "src": "15741:93:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4705,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 4700,
                          "name": "m_consensus",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 244,
                          "src": "15862:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Consensus_$363_storage_$",
                            "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Consensus storage ref)"
                          }
                        },
                        "id": 4702,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 4701,
                          "name": "taskid",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4616,
                          "src": "15874:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15862:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage",
                          "typeString": "struct IexecLibCore_v5.Consensus storage ref"
                        }
                      },
                      "id": 4703,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "total",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 362,
                      "src": "15862:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 4704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15890:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "15862:29:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4706,
                  "nodeType": "ExpressionStatement",
                  "src": "15862:29:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4708,
                        "name": "taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4616,
                        "src": "15916:6:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4709,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4592,
                            "src": "15924:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 4710,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "15924:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                            "typeString": "struct IexecLibCore_v5.Resource memory"
                          }
                        },
                        "id": 4711,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "pointer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 284,
                        "src": "15924:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 4707,
                      "name": "TaskInitialize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7523,
                      "src": "15901:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 4712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15901:47:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4713,
                  "nodeType": "EmitStatement",
                  "src": "15896:52:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4714,
                    "name": "taskid",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4616,
                    "src": "15960:6:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 4588,
                  "id": 4715,
                  "nodeType": "Return",
                  "src": "15953:13:19"
                }
              ]
            },
            "documentation": {
              "id": 4579,
              "nodeType": "StructuredDocumentation",
              "src": "14758:233:19",
              "text": "*************************************************************************\n                           Consensus methods                            ***************************************************************************"
            },
            "functionSelector": "5b36c66b",
            "id": 4717,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4585,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "15051:8:19"
            },
            "parameters": {
              "id": 4584,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4581,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4717,
                  "src": "15013:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4580,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15013:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4583,
                  "mutability": "mutable",
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4717,
                  "src": "15030:11:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4582,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15030:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15012:30:19"
            },
            "returnParameters": {
              "id": 4588,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4587,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4717,
                  "src": "15069:7:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4586,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15069:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15068:9:19"
            },
            "scope": 6368,
            "src": "14993:977:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7639
            ],
            "body": {
              "id": 4994,
              "nodeType": "Block",
              "src": "16266:2589:19",
              "statements": [
                {
                  "assignments": [
                    4736
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4736,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "16270:41:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4735,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "16270:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4740,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4737,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "16322:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 4739,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4738,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4719,
                      "src": "16330:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16322:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16270:68:19"
                },
                {
                  "assignments": [
                    4744
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4744,
                      "mutability": "mutable",
                      "name": "contribution",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "16342:49:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Contribution"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4743,
                        "name": "IexecLibCore_v5.Contribution",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 379,
                        "src": "16342:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4751,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 4745,
                        "name": "m_contributions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 250,
                        "src": "16394:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                          "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                        }
                      },
                      "id": 4747,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4746,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4719,
                        "src": "16410:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "16394:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                        "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                      }
                    },
                    "id": 4750,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 4748,
                        "name": "_msgSender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10740,
                        "src": "16419:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                          "typeString": "function () view returns (address payable)"
                        }
                      },
                      "id": 4749,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16419:12:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16394:38:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Contribution_$379_storage",
                      "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16342:90:19"
                },
                {
                  "assignments": [
                    4755
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4755,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "16436:41:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4754,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "16436:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4760,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4756,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "16488:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 4759,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4757,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4736,
                        "src": "16496:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 4758,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dealid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 330,
                      "src": "16496:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "16488:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16436:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 4767,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4762,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4736,
                            "src": "16521:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 4763,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "16521:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4764,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "16550:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 4765,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "16550:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 4766,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "ACTIVE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16550:37:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "16521:66:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4761,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "16513:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4768,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16513:82:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4769,
                  "nodeType": "ExpressionStatement",
                  "src": "16513:82:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4771,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4736,
                            "src": "16607:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 4772,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contributionDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 336,
                          "src": "16607:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 4773,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "16636:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16607:32:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4770,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "16599:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4775,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16599:82:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4776,
                  "nodeType": "ExpressionStatement",
                  "src": "16599:82:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                          "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                        },
                        "id": 4783,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4778,
                            "name": "contribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4744,
                            "src": "16693:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                            }
                          },
                          "id": 4779,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 370,
                          "src": "16693:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4780,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "16722:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 4781,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "ContributionStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 368,
                            "src": "16722:38:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                              "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                            }
                          },
                          "id": 4782,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "UNSET",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16722:44:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          }
                        },
                        "src": "16693:73:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4777,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "16685:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4784,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16685:82:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4785,
                  "nodeType": "ExpressionStatement",
                  "src": "16685:82:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4802,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 4792,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4787,
                            "name": "_enclaveChallenge",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4725,
                            "src": "16822:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 4790,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16851:1:19",
                                "subdenomination": null,
                                "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": 4789,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "16843:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 4788,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "16843:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 4791,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "16843:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "16822:31:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              },
                              "id": 4800,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes1",
                                  "typeString": "bytes1"
                                },
                                "id": 4798,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 4793,
                                      "name": "deal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4755,
                                      "src": "16858:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                        "typeString": "struct IexecLibCore_v5.Deal memory"
                                      }
                                    },
                                    "id": 4794,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "tag",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 301,
                                    "src": "16858:8:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "id": 4796,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "3331",
                                    "id": 4795,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "16867:2:19",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_31_by_1",
                                      "typeString": "int_const 31"
                                    },
                                    "value": "31"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "16858:12:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes1",
                                    "typeString": "bytes1"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "&",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30783031",
                                  "id": 4797,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "16873:4:19",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "0x01"
                                },
                                "src": "16858:19:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes1",
                                  "typeString": "bytes1"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 4799,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16881:1:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "16858:24:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 4801,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16857:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "16822:61:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4786,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "16814:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4803,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16814:70:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4804,
                  "nodeType": "ExpressionStatement",
                  "src": "16814:70:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "id": 4819,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    "id": 4812,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 4807,
                                      "name": "_enclaveChallenge",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4725,
                                      "src": "17021:17:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "!=",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "30",
                                          "id": 4810,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "17050:1:19",
                                          "subdenomination": null,
                                          "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": 4809,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "17042:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": {
                                          "id": 4808,
                                          "name": "address",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "17042:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 4811,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "17042:10:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    "src": "17021:31:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "&&",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    "id": 4818,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 4813,
                                      "name": "m_teebroker",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 256,
                                      "src": "17056:11:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "!=",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "30",
                                          "id": 4816,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "17079:1:19",
                                          "subdenomination": null,
                                          "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": 4815,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "17071:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": {
                                          "id": 4814,
                                          "name": "address",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "17071:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 4817,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "17071:10:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    "src": "17056:25:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "src": "17021:60:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 4820,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "17019:64:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4822,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4755,
                                  "src": "17100:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal memory"
                                  }
                                },
                                "id": 4823,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "workerpool",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 295,
                                "src": "17100:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                                  "typeString": "struct IexecLibCore_v5.Resource memory"
                                }
                              },
                              "id": 4824,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 286,
                              "src": "17100:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 4825,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "17019:102:19",
                            "trueExpression": {
                              "argumentTypes": null,
                              "id": 4821,
                              "name": "m_teebroker",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 256,
                              "src": "17086:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "id": 4830,
                                          "name": "_msgSender",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10740,
                                          "src": "17178:10:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                            "typeString": "function () view returns (address payable)"
                                          }
                                        },
                                        "id": 4831,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "17178:12:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 4832,
                                        "name": "_taskid",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4719,
                                        "src": "17196:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 4833,
                                        "name": "_enclaveChallenge",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4725,
                                        "src": "17209:17:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 4828,
                                        "name": "abi",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -1,
                                        "src": "17156:3:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_abi",
                                          "typeString": "abi"
                                        }
                                      },
                                      "id": 4829,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberName": "encodePacked",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "17156:16:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                        "typeString": "function () pure returns (bytes memory)"
                                      }
                                    },
                                    "id": 4834,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "17156:75:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 4827,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -8,
                                  "src": "17146:9:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 4835,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "17146:86:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 4826,
                              "name": "_toEthSignedMessage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6446,
                              "src": "17126:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function (bytes32) pure returns (bytes memory)"
                              }
                            },
                            "id": 4836,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "17126:107:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4837,
                            "name": "_authorizationSign",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4729,
                            "src": "17238:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 4806,
                          "name": "_checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            6674,
                            6757
                          ],
                          "referencedDeclaration": 6757,
                          "src": "16999:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                          }
                        },
                        "id": 4838,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16999:261:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4805,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "16991:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4839,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16991:270:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4840,
                  "nodeType": "ExpressionStatement",
                  "src": "16991:270:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 4861,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 4847,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4842,
                            "name": "_enclaveChallenge",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4725,
                            "src": "17303:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 4845,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "17332:1:19",
                                "subdenomination": null,
                                "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": 4844,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "17324:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 4843,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "17324:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 4846,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "17324:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "17303:31:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4849,
                              "name": "_enclaveChallenge",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4725,
                              "src": "17358:17:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 4854,
                                          "name": "_resultHash",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4721,
                                          "src": "17432:11:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "id": 4855,
                                          "name": "_resultSeal",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4723,
                                          "src": "17449:11:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 4852,
                                          "name": "abi",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": -1,
                                          "src": "17410:3:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_magic_abi",
                                            "typeString": "abi"
                                          }
                                        },
                                        "id": 4853,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberName": "encodePacked",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "17410:16:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                          "typeString": "function () pure returns (bytes memory)"
                                        }
                                      },
                                      "id": 4856,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "17410:55:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 4851,
                                    "name": "keccak256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": -8,
                                    "src": "17400:9:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 4857,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "17400:66:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 4850,
                                "name": "_toEthSignedMessage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6446,
                                "src": "17380:19:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function (bytes32) pure returns (bytes memory)"
                                }
                              },
                              "id": 4858,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "17380:87:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 4859,
                              "name": "_enclaveSign",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4727,
                              "src": "17472:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 4848,
                            "name": "_checkSignature",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              6674,
                              6757
                            ],
                            "referencedDeclaration": 6757,
                            "src": "17338:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                              "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                            }
                          },
                          "id": 4860,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "17338:150:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "17303:185:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 4841,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "17295:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 4862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17295:194:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4863,
                  "nodeType": "ExpressionStatement",
                  "src": "17295:194:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4870,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4864,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4744,
                        "src": "17525:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 4866,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 370,
                      "src": "17525:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4867,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "17557:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 4868,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "ContributionStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 368,
                        "src": "17557:38:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                          "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                        }
                      },
                      "id": 4869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "CONTRIBUTED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "17557:50:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "src": "17525:82:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                      "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                    }
                  },
                  "id": 4871,
                  "nodeType": "ExpressionStatement",
                  "src": "17525:82:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4876,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4872,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4744,
                        "src": "17611:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 4874,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 372,
                      "src": "17611:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4875,
                      "name": "_resultHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4721,
                      "src": "17643:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "17611:43:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4877,
                  "nodeType": "ExpressionStatement",
                  "src": "17611:43:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4882,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4878,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4744,
                        "src": "17658:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 4880,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultSeal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 374,
                      "src": "17658:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4881,
                      "name": "_resultSeal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4723,
                      "src": "17690:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "17658:43:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 4883,
                  "nodeType": "ExpressionStatement",
                  "src": "17658:43:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4884,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4744,
                        "src": "17705:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 4886,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "enclaveChallenge",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 376,
                      "src": "17705:29:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 4887,
                      "name": "_enclaveChallenge",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4725,
                      "src": "17737:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17705:49:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 4889,
                  "nodeType": "ExpressionStatement",
                  "src": "17705:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 4895,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "17781:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 4896,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17781:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4890,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4736,
                          "src": "17758:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 4893,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "17758:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 4894,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "17758:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 4897,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17758:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4898,
                  "nodeType": "ExpressionStatement",
                  "src": "17758:36:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4900,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4736,
                          "src": "17816:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 4901,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "17816:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 4902,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "17829:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 4903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17829:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 4899,
                      "name": "lockContribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3342,
                      "src": "17799:16:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 4904,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17799:43:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4905,
                  "nodeType": "ExpressionStatement",
                  "src": "17799:43:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4907,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4719,
                        "src": "17867:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 4908,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "17876:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 4909,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17876:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4910,
                        "name": "_resultHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4721,
                        "src": "17890:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 4906,
                      "name": "TaskContribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7531,
                      "src": "17852:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32)"
                      }
                    },
                    "id": 4911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17852:50:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4912,
                  "nodeType": "EmitStatement",
                  "src": "17847:55:19"
                },
                {
                  "assignments": [
                    4916
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4916,
                      "mutability": "mutable",
                      "name": "consensus",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "18364:43:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Consensus"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 4915,
                        "name": "IexecLibCore_v5.Consensus",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 363,
                        "src": "18364:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4920,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 4917,
                      "name": "m_consensus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 244,
                      "src": "18410:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Consensus_$363_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Consensus storage ref)"
                      }
                    },
                    "id": 4919,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4918,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4719,
                      "src": "18422:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "18410:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Consensus_$363_storage",
                      "typeString": "struct IexecLibCore_v5.Consensus storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18364:66:19"
                },
                {
                  "assignments": [
                    4922
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4922,
                      "mutability": "mutable",
                      "name": "weight",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "18435:14:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4921,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "18435:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4936,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 4934,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18499:1:19",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "33",
                            "id": 4931,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18492:1:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_3_by_1",
                              "typeString": "int_const 3"
                            },
                            "value": "3"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_3_by_1",
                              "typeString": "int_const 3"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "33",
                                "id": 4928,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "18485:1:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_3_by_1",
                                  "typeString": "int_const 3"
                                },
                                "value": "3"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_3_by_1",
                                  "typeString": "int_const 3"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 4923,
                                  "name": "m_workerScores",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 254,
                                  "src": "18452:14:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                  }
                                },
                                "id": 4926,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "id": 4924,
                                    "name": "_msgSender",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10740,
                                    "src": "18467:10:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                      "typeString": "function () view returns (address payable)"
                                    }
                                  },
                                  "id": 4925,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "18467:12:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "18452:28:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4927,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "div",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10448,
                              "src": "18452:32:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4929,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "18452:35:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4930,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "max",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10487,
                          "src": "18452:39:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 4932,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18452:42:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 4933,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10389,
                      "src": "18452:46:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 4935,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18452:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18435:66:19"
                },
                {
                  "assignments": [
                    4938
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4938,
                      "mutability": "mutable",
                      "name": "group",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "18505:13:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4937,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "18505:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4943,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4939,
                        "name": "consensus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4916,
                        "src": "18522:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                        }
                      },
                      "id": 4940,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "group",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 360,
                      "src": "18522:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 4942,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 4941,
                      "name": "_resultHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4721,
                      "src": "18538:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "18522:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18505:45:19"
                },
                {
                  "assignments": [
                    4945
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4945,
                      "mutability": "mutable",
                      "name": "delta",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4994,
                      "src": "18554:13:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4944,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "18554:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4956,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4954,
                        "name": "group",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4938,
                        "src": "18600:5:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4951,
                            "name": "weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4922,
                            "src": "18588:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 4948,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "18581:1:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 4946,
                                "name": "group",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4938,
                                "src": "18571:5:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4947,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "max",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10487,
                              "src": "18571:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 4949,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "18571:12:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4950,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "mul",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10423,
                          "src": "18571:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 4952,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18571:24:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 4953,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10389,
                      "src": "18571:28:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 4955,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18571:35:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18554:52:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4957,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4744,
                        "src": "18611:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 4959,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "weight",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 378,
                      "src": "18611:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "id": 4960,
                          "name": "weight",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4922,
                          "src": "18642:6:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4961,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "log",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10553,
                        "src": "18642:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4962,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18642:12:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18611:43:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4964,
                  "nodeType": "ExpressionStatement",
                  "src": "18611:43:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4965,
                          "name": "consensus",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4916,
                          "src": "18658:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                          }
                        },
                        "id": 4968,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "group",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 360,
                        "src": "18658:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 4969,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 4967,
                        "name": "_resultHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4721,
                        "src": "18674:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "18658:28:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4975,
                          "name": "delta",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4945,
                          "src": "18722:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 4970,
                              "name": "consensus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4916,
                              "src": "18689:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                              }
                            },
                            "id": 4971,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "group",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 360,
                            "src": "18689:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 4973,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 4972,
                            "name": "_resultHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4721,
                            "src": "18705:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18689:28:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4974,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "18689:32:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4976,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18689:39:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18658:70:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4978,
                  "nodeType": "ExpressionStatement",
                  "src": "18658:70:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4987,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4979,
                        "name": "consensus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4916,
                        "src": "18732:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                        }
                      },
                      "id": 4981,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "total",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 362,
                      "src": "18732:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4985,
                          "name": "delta",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4945,
                          "src": "18783:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 4982,
                            "name": "consensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4916,
                            "src": "18763:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                            }
                          },
                          "id": 4983,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "total",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 362,
                          "src": "18763:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4984,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "18763:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 4986,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18763:26:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18732:57:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4988,
                  "nodeType": "ExpressionStatement",
                  "src": "18732:57:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4990,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4719,
                        "src": "18830:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 4991,
                        "name": "_resultHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4721,
                        "src": "18839:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 4989,
                      "name": "checkConsensus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5964,
                      "src": "18815:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 4992,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18815:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4993,
                  "nodeType": "ExpressionStatement",
                  "src": "18815:36:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "34623484",
            "id": 4995,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contribute",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4731,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "16256:8:19"
            },
            "parameters": {
              "id": 4730,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4719,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16072:20:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4718,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16072:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4721,
                  "mutability": "mutable",
                  "name": "_resultHash",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16096:24:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4720,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16096:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4723,
                  "mutability": "mutable",
                  "name": "_resultSeal",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16124:24:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4722,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16124:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4725,
                  "mutability": "mutable",
                  "name": "_enclaveChallenge",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16152:30:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4724,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "16152:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4727,
                  "mutability": "mutable",
                  "name": "_enclaveSign",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16186:25:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 4726,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "16186:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4729,
                  "mutability": "mutable",
                  "name": "_authorizationSign",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4995,
                  "src": "16215:31:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 4728,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "16215:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16068:179:19"
            },
            "returnParameters": {
              "id": 4732,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16266:0:19"
            },
            "scope": 6368,
            "src": "16049:2806:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7646
            ],
            "body": {
              "id": 5114,
              "nodeType": "Block",
              "src": "18949:1020:19",
              "statements": [
                {
                  "assignments": [
                    5006
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5006,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5114,
                      "src": "18953:41:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5005,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "18953:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5010,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5007,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "19005:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5009,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5008,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4997,
                      "src": "19013:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "19005:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18953:68:19"
                },
                {
                  "assignments": [
                    5014
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5014,
                      "mutability": "mutable",
                      "name": "contribution",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5114,
                      "src": "19025:49:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Contribution"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5013,
                        "name": "IexecLibCore_v5.Contribution",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 379,
                        "src": "19025:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5021,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5015,
                        "name": "m_contributions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 250,
                        "src": "19077:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                          "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                        }
                      },
                      "id": 5017,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5016,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4997,
                        "src": "19093:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "19077:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                        "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                      }
                    },
                    "id": 5020,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 5018,
                        "name": "_msgSender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10740,
                        "src": "19102:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                          "typeString": "function () view returns (address payable)"
                        }
                      },
                      "id": 5019,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19102:12:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "19077:38:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Contribution_$379_storage",
                      "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "19025:90:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 5028,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5023,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5006,
                            "src": "19127:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5024,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "19127:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5025,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "19154:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 5026,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "19154:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 5027,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "REVEALING",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "19154:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "19127:67:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5022,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19119:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5029,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19119:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5030,
                  "nodeType": "ExpressionStatement",
                  "src": "19119:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5035,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5032,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5006,
                            "src": "19232:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5033,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "revealDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 338,
                          "src": "19232:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5034,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "19259:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "19232:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5031,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19224:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5036,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19224:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5037,
                  "nodeType": "ExpressionStatement",
                  "src": "19224:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                          "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                        },
                        "id": 5044,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5039,
                            "name": "contribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5014,
                            "src": "19337:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                            }
                          },
                          "id": 5040,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 370,
                          "src": "19337:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5041,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "19364:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 5042,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "ContributionStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 368,
                            "src": "19364:38:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                              "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                            }
                          },
                          "id": 5043,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "CONTRIBUTED",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "19364:50:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          }
                        },
                        "src": "19337:77:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5038,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19329:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5045,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19329:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5046,
                  "nodeType": "ExpressionStatement",
                  "src": "19329:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 5052,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5048,
                            "name": "contribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5014,
                            "src": "19442:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                            }
                          },
                          "id": 5049,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "resultHash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 372,
                          "src": "19442:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5050,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5006,
                            "src": "19469:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5051,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "consensusValue",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 342,
                          "src": "19469:19:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "19442:46:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5047,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19434:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19434:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5054,
                  "nodeType": "ExpressionStatement",
                  "src": "19434:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 5065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5056,
                            "name": "contribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5014,
                            "src": "19547:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                            }
                          },
                          "id": 5057,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "resultHash",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 372,
                          "src": "19547:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 5061,
                                  "name": "_taskid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4997,
                                  "src": "19615:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 5062,
                                  "name": "_resultDigest",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4999,
                                  "src": "19624:13:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 5059,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -1,
                                  "src": "19584:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 5060,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "19584:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 5063,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "19584:54:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 5058,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -8,
                            "src": "19574:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 5064,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19574:65:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "19547:92:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5055,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19539:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5066,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19539:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5067,
                  "nodeType": "ExpressionStatement",
                  "src": "19539:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 5080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5069,
                            "name": "contribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5014,
                            "src": "19652:12:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                            }
                          },
                          "id": 5070,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "resultSeal",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 374,
                          "src": "19652:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "id": 5074,
                                    "name": "_msgSender",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10740,
                                    "src": "19706:10:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                      "typeString": "function () view returns (address payable)"
                                    }
                                  },
                                  "id": 5075,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "19706:12:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 5076,
                                  "name": "_taskid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4997,
                                  "src": "19720:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 5077,
                                  "name": "_resultDigest",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4999,
                                  "src": "19729:13:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 5072,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -1,
                                  "src": "19689:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 5073,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "19689:16:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 5078,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "19689:54:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 5071,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -8,
                            "src": "19679:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 5079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19679:65:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "19652:92:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5068,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "19644:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5081,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19644:101:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5082,
                  "nodeType": "ExpressionStatement",
                  "src": "19644:101:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5089,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5083,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5014,
                        "src": "19750:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5085,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 370,
                      "src": "19750:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5086,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "19772:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5087,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "ContributionStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 368,
                        "src": "19772:38:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                          "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                        }
                      },
                      "id": 5088,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "19772:45:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "src": "19750:67:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                      "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                    }
                  },
                  "id": 5090,
                  "nodeType": "ExpressionStatement",
                  "src": "19750:67:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5099,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5091,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5006,
                        "src": "19821:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5093,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealCounter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 344,
                      "src": "19821:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 5097,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "19866:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5094,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5006,
                            "src": "19843:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5095,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "revealCounter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 344,
                          "src": "19843:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5096,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "19843:22:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5098,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19843:25:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "19821:47:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5100,
                  "nodeType": "ExpressionStatement",
                  "src": "19821:47:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5101,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5006,
                        "src": "19872:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5103,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultDigest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 351,
                      "src": "19872:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5104,
                      "name": "_resultDigest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4999,
                      "src": "19894:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "19872:35:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5106,
                  "nodeType": "ExpressionStatement",
                  "src": "19872:35:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5108,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4997,
                        "src": "19928:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5109,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "19937:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 5110,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "19937:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5111,
                        "name": "_resultDigest",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4999,
                        "src": "19951:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5107,
                      "name": "TaskReveal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7545,
                      "src": "19917:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32)"
                      }
                    },
                    "id": 5112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19917:48:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5113,
                  "nodeType": "EmitStatement",
                  "src": "19912:53:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "fc334e8c",
            "id": 5115,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "reveal",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5001,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "18929:8:19"
            },
            "parameters": {
              "id": 5000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4997,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5115,
                  "src": "18877:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4996,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18877:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4999,
                  "mutability": "mutable",
                  "name": "_resultDigest",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5115,
                  "src": "18896:21:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4998,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18896:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18873:45:19"
            },
            "returnParameters": {
              "id": 5002,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18949:0:19"
            },
            "scope": 6368,
            "src": "18858:1111:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7651
            ],
            "body": {
              "id": 5264,
              "nodeType": "Block",
              "src": "20051:946:19",
              "statements": [
                {
                  "assignments": [
                    5127
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5127,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5264,
                      "src": "20055:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5126,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "20055:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5131,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5128,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "20091:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5130,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5129,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5117,
                      "src": "20099:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "20091:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20055:52:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 5138,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5133,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5127,
                            "src": "20119:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5134,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "20119:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5135,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "20142:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 5136,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "20142:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 5137,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "REVEALING",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "20142:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "20119:63:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5132,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "20111:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20111:72:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5140,
                  "nodeType": "ExpressionStatement",
                  "src": "20111:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5145,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5142,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5127,
                            "src": "20195:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5143,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "finalDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 340,
                          "src": "20195:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5144,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "20218:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "20195:26:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5141,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "20187:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5146,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20187:72:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5147,
                  "nodeType": "ExpressionStatement",
                  "src": "20187:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5157,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5152,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5149,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5127,
                              "src": "20271:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5150,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "revealDeadline",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 338,
                            "src": "20271:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5151,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -17,
                            "src": "20294:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "20271:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5156,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5153,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5127,
                              "src": "20301:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5154,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "revealCounter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 344,
                            "src": "20301:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 5155,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "20323:1:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "20301:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "20271:53:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5148,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "20263:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20263:72:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5159,
                  "nodeType": "ExpressionStatement",
                  "src": "20263:72:19"
                },
                {
                  "body": {
                    "id": 5201,
                    "nodeType": "Block",
                    "src": "20397:227:19",
                    "statements": [
                      {
                        "assignments": [
                          5173
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5173,
                            "mutability": "mutable",
                            "name": "worker",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 5201,
                            "src": "20402:14:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 5172,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "20402:7:19",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5178,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5174,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5127,
                              "src": "20419:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5175,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contributors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 349,
                            "src": "20419:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 5177,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5176,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5161,
                            "src": "20437:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "20419:20:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "20402:37:19"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 5187,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5179,
                                  "name": "m_contributions",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 250,
                                  "src": "20448:15:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                    "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                                  }
                                },
                                "id": 5181,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5180,
                                  "name": "_taskid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5117,
                                  "src": "20464:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "20448:24:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                                  "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                                }
                              },
                              "id": 5183,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 5182,
                                "name": "worker",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5173,
                                "src": "20473:6:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "20448:32:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Contribution_$379_storage",
                                "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                              }
                            },
                            "id": 5184,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "resultHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 372,
                            "src": "20448:43:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5185,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5127,
                              "src": "20495:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5186,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "consensusValue",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 342,
                            "src": "20495:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "20448:66:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 5200,
                        "nodeType": "IfStatement",
                        "src": "20444:176:19",
                        "trueBody": {
                          "id": 5199,
                          "nodeType": "Block",
                          "src": "20519:101:19",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 5197,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 5188,
                                        "name": "m_contributions",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 250,
                                        "src": "20525:15:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                          "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                                        }
                                      },
                                      "id": 5191,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 5189,
                                        "name": "_taskid",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5117,
                                        "src": "20541:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "20525:24:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                                        "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                                      }
                                    },
                                    "id": 5192,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 5190,
                                      "name": "worker",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5173,
                                      "src": "20550:6:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "20525:32:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Contribution_$379_storage",
                                      "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                                    }
                                  },
                                  "id": 5193,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "status",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 370,
                                  "src": "20525:39:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                    "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5194,
                                      "name": "IexecLibCore_v5",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 380,
                                      "src": "20567:15:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                        "typeString": "type(library IexecLibCore_v5)"
                                      }
                                    },
                                    "id": 5195,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "ContributionStatusEnum",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 368,
                                    "src": "20567:38:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                                      "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                                    }
                                  },
                                  "id": 5196,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "REJECTED",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "20567:47:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                    "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                  }
                                },
                                "src": "20525:89:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                  "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                }
                              },
                              "id": 5198,
                              "nodeType": "ExpressionStatement",
                              "src": "20525:89:19"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5168,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5164,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5161,
                      "src": "20360:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5165,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5127,
                          "src": "20364:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5166,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "20364:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 5167,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "20364:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20360:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5202,
                  "initializationExpression": {
                    "assignments": [
                      5161
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5161,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 5202,
                        "src": "20345:9:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5160,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "20345:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 5163,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5162,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20357:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "20345:13:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 5170,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "20390:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 5169,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5161,
                        "src": "20392:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5171,
                    "nodeType": "ExpressionStatement",
                    "src": "20390:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "20340:284:19"
                },
                {
                  "assignments": [
                    5206
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5206,
                      "mutability": "mutable",
                      "name": "consensus",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5264,
                      "src": "20628:43:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Consensus"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5205,
                        "name": "IexecLibCore_v5.Consensus",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 363,
                        "src": "20628:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5210,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5207,
                      "name": "m_consensus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 244,
                      "src": "20674:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Consensus_$363_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Consensus storage ref)"
                      }
                    },
                    "id": 5209,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5208,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5117,
                      "src": "20686:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "20674:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Consensus_$363_storage",
                      "typeString": "struct IexecLibCore_v5.Consensus storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20628:66:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5211,
                        "name": "consensus",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5206,
                        "src": "20698:9:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                        }
                      },
                      "id": 5213,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "total",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 362,
                      "src": "20698:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5217,
                              "name": "consensus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5206,
                              "src": "20736:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                              }
                            },
                            "id": 5218,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "group",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 360,
                            "src": "20736:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 5221,
                          "indexExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5219,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5127,
                              "src": "20752:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5220,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "consensusValue",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 342,
                            "src": "20752:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "20736:36:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5214,
                            "name": "consensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5206,
                            "src": "20716:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                            }
                          },
                          "id": 5215,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "total",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 362,
                          "src": "20716:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5216,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10389,
                        "src": "20716:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5222,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "20716:57:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20698:75:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5224,
                  "nodeType": "ExpressionStatement",
                  "src": "20698:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5232,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5225,
                          "name": "consensus",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5206,
                          "src": "20777:9:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                          }
                        },
                        "id": 5229,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "group",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 360,
                        "src": "20777:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 5230,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5227,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5127,
                          "src": "20793:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5228,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "consensusValue",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 342,
                        "src": "20793:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "20777:36:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5231,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20816:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20777:40:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5233,
                  "nodeType": "ExpressionStatement",
                  "src": "20777:40:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5240,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5234,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5127,
                        "src": "20822:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5236,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 328,
                      "src": "20822:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5237,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "20844:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5238,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "TaskStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 326,
                        "src": "20844:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                          "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                        }
                      },
                      "id": 5239,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "ACTIVE",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "20844:37:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "src": "20822:59:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                      "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                    }
                  },
                  "id": 5241,
                  "nodeType": "ExpressionStatement",
                  "src": "20822:59:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5242,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5127,
                        "src": "20885:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5244,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "consensusValue",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 342,
                      "src": "20885:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "307830",
                      "id": 5245,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20907:3:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0x0"
                    },
                    "src": "20885:25:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5247,
                  "nodeType": "ExpressionStatement",
                  "src": "20885:25:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5252,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5248,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5127,
                        "src": "20914:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5250,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealDeadline",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 338,
                      "src": "20914:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5251,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20936:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20914:23:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5253,
                  "nodeType": "ExpressionStatement",
                  "src": "20914:23:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5254,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5127,
                        "src": "20941:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5256,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "winnerCounter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 346,
                      "src": "20941:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5257,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20963:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "20941:23:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5259,
                  "nodeType": "ExpressionStatement",
                  "src": "20941:23:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5261,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5117,
                        "src": "20985:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5260,
                      "name": "TaskReopen",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7549,
                      "src": "20974:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 5262,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20974:19:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5263,
                  "nodeType": "EmitStatement",
                  "src": "20969:24:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "f6c68e10",
            "id": 5265,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5121,
                    "name": "_taskid",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5117,
                    "src": "20041:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5122,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5120,
                  "name": "onlyScheduler",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 843,
                  "src": "20027:13:19",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "20027:22:19"
              }
            ],
            "name": "reopen",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5119,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "20018:8:19"
            },
            "parameters": {
              "id": 5118,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5117,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5265,
                  "src": "19991:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5116,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19991:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19987:20:19"
            },
            "returnParameters": {
              "id": 5123,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20051:0:19"
            },
            "scope": 6368,
            "src": "19972:1025:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7658
            ],
            "body": {
              "id": 5379,
              "nodeType": "Block",
              "src": "21119:842:19",
              "statements": [
                {
                  "assignments": [
                    5279
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5279,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5379,
                      "src": "21123:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5278,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "21123:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5283,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5280,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "21159:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5282,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5281,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5267,
                      "src": "21167:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "21159:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "21123:52:19"
                },
                {
                  "assignments": [
                    5287
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5287,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5379,
                      "src": "21179:33:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5286,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "21179:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5292,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5288,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "21215:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 5291,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5289,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5279,
                        "src": "21223:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5290,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dealid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 330,
                      "src": "21223:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "21215:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "21179:56:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 5299,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5294,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5279,
                            "src": "21248:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5295,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "21248:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5296,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "21270:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 5297,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "21270:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 5298,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "REVEALING",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "21270:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "21248:62:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5293,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "21240:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5300,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21240:107:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5301,
                  "nodeType": "ExpressionStatement",
                  "src": "21240:107:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5306,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5303,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5279,
                            "src": "21359:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5304,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "finalDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 340,
                          "src": "21359:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5305,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "21381:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "21359:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5302,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "21351:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5307,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21351:107:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5308,
                  "nodeType": "ExpressionStatement",
                  "src": "21351:107:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5325,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5314,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5310,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5279,
                              "src": "21470:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5311,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "revealCounter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 344,
                            "src": "21470:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5312,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5279,
                              "src": "21492:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5313,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "winnerCounter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 346,
                            "src": "21492:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21470:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 5323,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 5318,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 5315,
                                    "name": "task",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5279,
                                    "src": "21515:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                      "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                    }
                                  },
                                  "id": 5316,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "revealCounter",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 344,
                                  "src": "21515:18:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 5317,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "21536:1:19",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "21515:22:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 5322,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 5319,
                                    "name": "task",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5279,
                                    "src": "21541:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                      "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                    }
                                  },
                                  "id": 5320,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "revealDeadline",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 338,
                                  "src": "21541:19:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 5321,
                                  "name": "now",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -17,
                                  "src": "21564:3:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "21541:26:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "21515:52:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 5324,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "21514:54:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "21470:98:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5309,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "21462:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5326,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21462:107:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5327,
                  "nodeType": "ExpressionStatement",
                  "src": "21462:107:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5342,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5335,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5329,
                              "name": "deal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5287,
                              "src": "21582:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                "typeString": "struct IexecLibCore_v5.Deal memory"
                              }
                            },
                            "id": 5330,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "callback",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 307,
                            "src": "21582:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 5333,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "21607:1:19",
                                "subdenomination": null,
                                "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": 5332,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "21599:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5331,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "21599:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 5334,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "21599:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "21582:27:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 5341,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5337,
                                "name": "_results",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5269,
                                "src": "21623:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_calldata_ptr",
                                  "typeString": "bytes calldata"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_calldata_ptr",
                                  "typeString": "bytes calldata"
                                }
                              ],
                              "id": 5336,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -8,
                              "src": "21613:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 5338,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "21613:19:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5339,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5279,
                              "src": "21636:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5340,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "resultDigest",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 351,
                            "src": "21636:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "21613:40:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "21582:71:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5328,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "21574:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5343,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21574:80:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5344,
                  "nodeType": "ExpressionStatement",
                  "src": "21574:80:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5345,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5279,
                        "src": "21659:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5347,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 328,
                      "src": "21659:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5348,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "21674:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "TaskStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 326,
                        "src": "21674:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                          "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                        }
                      },
                      "id": 5350,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "COMPLETED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "21674:40:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "src": "21659:55:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                      "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                    }
                  },
                  "id": 5352,
                  "nodeType": "ExpressionStatement",
                  "src": "21659:55:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5357,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5353,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5279,
                        "src": "21718:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5355,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "results",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 353,
                      "src": "21718:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5356,
                      "name": "_results",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5269,
                      "src": "21733:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_calldata_ptr",
                        "typeString": "bytes calldata"
                      }
                    },
                    "src": "21718:23:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 5358,
                  "nodeType": "ExpressionStatement",
                  "src": "21718:23:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5360,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5279,
                          "src": "21803:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5361,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "21803:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5362,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5267,
                        "src": "21816:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5359,
                      "name": "successWork",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3549,
                      "src": "21791:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5363,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21791:33:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5364,
                  "nodeType": "ExpressionStatement",
                  "src": "21791:33:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5366,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5267,
                        "src": "21846:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5365,
                      "name": "distributeRewards",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6190,
                      "src": "21828:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 5367,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21828:26:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5368,
                  "nodeType": "ExpressionStatement",
                  "src": "21828:26:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5370,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5267,
                        "src": "21900:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5371,
                        "name": "_results",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5269,
                        "src": "21909:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 5369,
                      "name": "TaskFinalize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7555,
                      "src": "21887:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,bytes memory)"
                      }
                    },
                    "id": 5372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21887:31:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5373,
                  "nodeType": "EmitStatement",
                  "src": "21882:36:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5375,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5267,
                        "src": "21939:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5376,
                        "name": "_results",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5269,
                        "src": "21948:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 5374,
                      "name": "executeCallback",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6243,
                      "src": "21923:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,bytes memory)"
                      }
                    },
                    "id": 5377,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21923:34:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5378,
                  "nodeType": "ExpressionStatement",
                  "src": "21923:34:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "c037f13e",
            "id": 5380,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 5273,
                    "name": "_taskid",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5267,
                    "src": "21109:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 5274,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5272,
                  "name": "onlyScheduler",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 843,
                  "src": "21095:13:19",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "21095:22:19"
              }
            ],
            "name": "finalize",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5271,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "21086:8:19"
            },
            "parameters": {
              "id": 5270,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5267,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5380,
                  "src": "21021:24:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5266,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21021:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5269,
                  "mutability": "mutable",
                  "name": "_results",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5380,
                  "src": "21049:25:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5268,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "21049:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21017:58:19"
            },
            "returnParameters": {
              "id": 5275,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21119:0:19"
            },
            "scope": 6368,
            "src": "21000:961:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7663
            ],
            "body": {
              "id": 5462,
              "nodeType": "Block",
              "src": "22017:537:19",
              "statements": [
                {
                  "assignments": [
                    5389
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5389,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5462,
                      "src": "22021:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5388,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "22021:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5393,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5390,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "22057:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5392,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5391,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5382,
                      "src": "22065:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "22057:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "22021:52:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5407,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          },
                          "id": 5400,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5395,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5389,
                              "src": "22085:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5396,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 328,
                            "src": "22085:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5397,
                                "name": "IexecLibCore_v5",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 380,
                                "src": "22100:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                  "typeString": "type(library IexecLibCore_v5)"
                                }
                              },
                              "id": 5398,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "TaskStatusEnum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 326,
                              "src": "22100:30:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                                "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                              }
                            },
                            "id": 5399,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "ACTIVE",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "22100:37:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "src": "22085:52:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          },
                          "id": 5406,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5401,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5389,
                              "src": "22148:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5402,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 328,
                            "src": "22148:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5403,
                                "name": "IexecLibCore_v5",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 380,
                                "src": "22163:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                  "typeString": "type(library IexecLibCore_v5)"
                                }
                              },
                              "id": 5404,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "TaskStatusEnum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 326,
                              "src": "22163:30:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                                "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                              }
                            },
                            "id": 5405,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "REVEALING",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "22163:40:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "src": "22148:55:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "22085:118:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5394,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "22077:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5408,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22077:127:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5409,
                  "nodeType": "ExpressionStatement",
                  "src": "22077:127:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5411,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5389,
                            "src": "22216:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5412,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "finalDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 340,
                          "src": "22216:18:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5413,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "22238:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "22216:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5410,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "22208:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5415,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22208:34:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5416,
                  "nodeType": "ExpressionStatement",
                  "src": "22208:34:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5423,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5417,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5389,
                        "src": "22247:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5419,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 328,
                      "src": "22247:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5420,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "22261:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5421,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "TaskStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 326,
                        "src": "22261:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                          "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                        }
                      },
                      "id": 5422,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "FAILED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "22261:37:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "src": "22247:51:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                      "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                    }
                  },
                  "id": 5424,
                  "nodeType": "ExpressionStatement",
                  "src": "22247:51:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5426,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5389,
                          "src": "22348:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5427,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "22348:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5428,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5382,
                        "src": "22361:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5425,
                      "name": "failedWork",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3615,
                      "src": "22337:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5429,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22337:32:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5430,
                  "nodeType": "ExpressionStatement",
                  "src": "22337:32:19"
                },
                {
                  "body": {
                    "id": 5456,
                    "nodeType": "Block",
                    "src": "22430:91:19",
                    "statements": [
                      {
                        "assignments": [
                          5444
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5444,
                            "mutability": "mutable",
                            "name": "worker",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 5456,
                            "src": "22435:14:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 5443,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "22435:7:19",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5449,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5445,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5389,
                              "src": "22452:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5446,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contributors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 349,
                            "src": "22452:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 5448,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5447,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5432,
                            "src": "22470:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "22452:20:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "22435:37:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5451,
                                "name": "task",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5389,
                                "src": "22496:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                }
                              },
                              "id": 5452,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "dealid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 330,
                              "src": "22496:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 5453,
                              "name": "worker",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5444,
                              "src": "22509:6:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 5450,
                            "name": "unlockContribution",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3358,
                            "src": "22477:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address)"
                            }
                          },
                          "id": 5454,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "22477:39:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5455,
                        "nodeType": "ExpressionStatement",
                        "src": "22477:39:19"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5439,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5435,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5432,
                      "src": "22393:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5436,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5389,
                          "src": "22397:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5437,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "22397:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 5438,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "22397:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "22393:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5457,
                  "initializationExpression": {
                    "assignments": [
                      5432
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5432,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 5457,
                        "src": "22378:9:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5431,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "22378:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 5434,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5433,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "22390:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "22378:13:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 5441,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "22423:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 5440,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5432,
                        "src": "22425:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5442,
                    "nodeType": "ExpressionStatement",
                    "src": "22423:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "22373:148:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5459,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5382,
                        "src": "22542:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5458,
                      "name": "TaskClaimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7559,
                      "src": "22530:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 5460,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22530:20:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5461,
                  "nodeType": "EmitStatement",
                  "src": "22525:25:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "bd66528a",
            "id": 5463,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "claim",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5384,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "22007:8:19"
            },
            "parameters": {
              "id": 5383,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5382,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5463,
                  "src": "21982:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5381,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21982:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21978:20:19"
            },
            "returnParameters": {
              "id": 5385,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22017:0:19"
            },
            "scope": 6368,
            "src": "21964:590:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7678
            ],
            "body": {
              "id": 5815,
              "nodeType": "Block",
              "src": "22860:2871:19",
              "statements": [
                {
                  "assignments": [
                    5482
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5482,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "22864:41:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5481,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "22864:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5486,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5483,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "22916:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5485,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5484,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5465,
                      "src": "22924:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "22916:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "22864:68:19"
                },
                {
                  "assignments": [
                    5490
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5490,
                      "mutability": "mutable",
                      "name": "contribution",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "22936:49:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Contribution"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5489,
                        "name": "IexecLibCore_v5.Contribution",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 379,
                        "src": "22936:28:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5497,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5491,
                        "name": "m_contributions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 250,
                        "src": "22988:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                          "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                        }
                      },
                      "id": 5493,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 5492,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "23004:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "22988:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                        "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                      }
                    },
                    "id": 5496,
                    "indexExpression": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 5494,
                        "name": "_msgSender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10740,
                        "src": "23013:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                          "typeString": "function () view returns (address payable)"
                        }
                      },
                      "id": 5495,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "23013:12:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "22988:38:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Contribution_$379_storage",
                      "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "22936:90:19"
                },
                {
                  "assignments": [
                    5501
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5501,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "23030:41:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5500,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "23030:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5506,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5502,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "23082:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 5505,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5503,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "23090:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5504,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dealid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 330,
                      "src": "23090:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "23082:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "23030:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                          "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                        },
                        "id": 5513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5508,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5482,
                            "src": "23115:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5509,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "status",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 328,
                          "src": "23115:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5510,
                              "name": "IexecLibCore_v5",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 380,
                              "src": "23144:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                "typeString": "type(library IexecLibCore_v5)"
                              }
                            },
                            "id": 5511,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "TaskStatusEnum",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 326,
                            "src": "23144:30:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                              "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                            }
                          },
                          "id": 5512,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "ACTIVE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "23144:37:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "src": "23115:66:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5507,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23107:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5514,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23107:75:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5515,
                  "nodeType": "ExpressionStatement",
                  "src": "23107:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5520,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5517,
                            "name": "task",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5482,
                            "src": "23194:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Task storage pointer"
                            }
                          },
                          "id": 5518,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "contributionDeadline",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 336,
                          "src": "23194:25:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5519,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "23223:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "23194:32:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5516,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23186:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5521,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23186:75:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5522,
                  "nodeType": "ExpressionStatement",
                  "src": "23186:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5528,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5524,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5482,
                              "src": "23273:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5525,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contributors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 349,
                            "src": "23273:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 5526,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "23273:24:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5527,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "23302:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "23273:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5523,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23265:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5529,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23265:75:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5530,
                  "nodeType": "ExpressionStatement",
                  "src": "23265:75:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5535,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5532,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5501,
                            "src": "23352:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 5533,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "trust",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 297,
                          "src": "23352:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 5534,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "23381:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "23352:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5531,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23344:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5536,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23344:75:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5537,
                  "nodeType": "ExpressionStatement",
                  "src": "23344:75:19"
                },
                {
                  "assignments": [
                    5539
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5539,
                      "mutability": "mutable",
                      "name": "resultHash",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "23476:18:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5538,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "23476:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5547,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 5543,
                            "name": "_taskid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5465,
                            "src": "23538:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5544,
                            "name": "_resultDigest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5467,
                            "src": "23547:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5541,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "23507:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5542,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "23507:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5545,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23507:54:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5540,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "23497:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 5546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23497:65:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "23476:86:19"
                },
                {
                  "assignments": [
                    5549
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5549,
                      "mutability": "mutable",
                      "name": "resultSeal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "23566:18:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 5548,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "23566:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5559,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 5553,
                              "name": "_msgSender",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10740,
                              "src": "23614:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                "typeString": "function () view returns (address payable)"
                              }
                            },
                            "id": 5554,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23614:12:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5555,
                            "name": "_taskid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5465,
                            "src": "23628:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5556,
                            "name": "_resultDigest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5467,
                            "src": "23637:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 5551,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "23597:3:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 5552,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "23597:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 5557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23597:54:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5550,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": -8,
                      "src": "23587:9:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 5558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23587:65:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "23566:86:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5573,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5567,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5561,
                              "name": "deal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5501,
                              "src": "23665:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                "typeString": "struct IexecLibCore_v5.Deal memory"
                              }
                            },
                            "id": 5562,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "callback",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 307,
                            "src": "23665:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 5565,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "23690:1:19",
                                "subdenomination": null,
                                "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": 5564,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "23682:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5563,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "23682:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 5566,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23682:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "23665:27:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 5572,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5569,
                                "name": "_results",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5469,
                                "src": "23706:8:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 5568,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -8,
                              "src": "23696:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 5570,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23696:19:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 5571,
                            "name": "_resultDigest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5467,
                            "src": "23719:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "23696:36:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "23665:67:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5560,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23657:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23657:76:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5575,
                  "nodeType": "ExpressionStatement",
                  "src": "23657:76:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5592,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5582,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5577,
                            "name": "_enclaveChallenge",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5471,
                            "src": "23788:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 5580,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "23817:1:19",
                                "subdenomination": null,
                                "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": 5579,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "23809:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5578,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "23809:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 5581,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "23809:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "23788:31:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes1",
                                "typeString": "bytes1"
                              },
                              "id": 5590,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes1",
                                  "typeString": "bytes1"
                                },
                                "id": 5588,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5583,
                                      "name": "deal",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5501,
                                      "src": "23824:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                        "typeString": "struct IexecLibCore_v5.Deal memory"
                                      }
                                    },
                                    "id": 5584,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "tag",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 301,
                                    "src": "23824:8:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "id": 5586,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "3331",
                                    "id": 5585,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "23833:2:19",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_31_by_1",
                                      "typeString": "int_const 31"
                                    },
                                    "value": "31"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "23824:12:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes1",
                                    "typeString": "bytes1"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "&",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30783031",
                                  "id": 5587,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "23839:4:19",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "0x01"
                                },
                                "src": "23824:19:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes1",
                                  "typeString": "bytes1"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 5589,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "23847:1:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "23824:24:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 5591,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "23823:26:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "23788:61:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5576,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23780:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23780:70:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5594,
                  "nodeType": "ExpressionStatement",
                  "src": "23780:70:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "condition": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "id": 5609,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    "id": 5602,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 5597,
                                      "name": "_enclaveChallenge",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5471,
                                      "src": "23987:17:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "!=",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "30",
                                          "id": 5600,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "24016:1:19",
                                          "subdenomination": null,
                                          "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": 5599,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "24008:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": {
                                          "id": 5598,
                                          "name": "address",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "24008:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 5601,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "24008:10:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    "src": "23987:31:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "&&",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    "id": 5608,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 5603,
                                      "name": "m_teebroker",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 256,
                                      "src": "24022:11:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "!=",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "30",
                                          "id": 5606,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "24045:1:19",
                                          "subdenomination": null,
                                          "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": 5605,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "24037:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_address_$",
                                          "typeString": "type(address)"
                                        },
                                        "typeName": {
                                          "id": 5604,
                                          "name": "address",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "24037:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": null,
                                            "typeString": null
                                          }
                                        }
                                      },
                                      "id": 5607,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "24037:10:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    "src": "24022:25:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "src": "23987:60:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                }
                              ],
                              "id": 5610,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "23985:64:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 5612,
                                  "name": "deal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5501,
                                  "src": "24066:4:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                    "typeString": "struct IexecLibCore_v5.Deal memory"
                                  }
                                },
                                "id": 5613,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "workerpool",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 295,
                                "src": "24066:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                                  "typeString": "struct IexecLibCore_v5.Resource memory"
                                }
                              },
                              "id": 5614,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 286,
                              "src": "24066:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "id": 5615,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "23985:102:19",
                            "trueExpression": {
                              "argumentTypes": null,
                              "id": 5611,
                              "name": "m_teebroker",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 256,
                              "src": "24052:11:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [],
                                        "expression": {
                                          "argumentTypes": [],
                                          "id": 5620,
                                          "name": "_msgSender",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10740,
                                          "src": "24144:10:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                                            "typeString": "function () view returns (address payable)"
                                          }
                                        },
                                        "id": 5621,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "24144:12:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 5622,
                                        "name": "_taskid",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5465,
                                        "src": "24162:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 5623,
                                        "name": "_enclaveChallenge",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5471,
                                        "src": "24175:17:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 5618,
                                        "name": "abi",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -1,
                                        "src": "24122:3:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_abi",
                                          "typeString": "abi"
                                        }
                                      },
                                      "id": 5619,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberName": "encodePacked",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "24122:16:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                        "typeString": "function () pure returns (bytes memory)"
                                      }
                                    },
                                    "id": 5624,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "24122:75:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 5617,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -8,
                                  "src": "24112:9:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 5625,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "24112:86:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 5616,
                              "name": "_toEthSignedMessage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6446,
                              "src": "24092:19:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function (bytes32) pure returns (bytes memory)"
                              }
                            },
                            "id": 5626,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "24092:107:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 5627,
                            "name": "_authorizationSign",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5475,
                            "src": "24204:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 5596,
                          "name": "_checkSignature",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            6674,
                            6757
                          ],
                          "referencedDeclaration": 6757,
                          "src": "23965:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                          }
                        },
                        "id": 5628,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23965:261:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5595,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "23957:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5629,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23957:270:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5630,
                  "nodeType": "ExpressionStatement",
                  "src": "23957:270:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 5651,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 5637,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5632,
                            "name": "_enclaveChallenge",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5471,
                            "src": "24269:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 5635,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "24298:1:19",
                                "subdenomination": null,
                                "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": 5634,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "24290:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 5633,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "24290:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 5636,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "24290:10:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "24269:31:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5639,
                              "name": "_enclaveChallenge",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5471,
                              "src": "24324:17:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 5644,
                                          "name": "resultHash",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5539,
                                          "src": "24398:10:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "id": 5645,
                                          "name": "resultSeal",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5549,
                                          "src": "24414:10:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          },
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 5642,
                                          "name": "abi",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": -1,
                                          "src": "24376:3:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_magic_abi",
                                            "typeString": "abi"
                                          }
                                        },
                                        "id": 5643,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "memberName": "encodePacked",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": null,
                                        "src": "24376:16:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                          "typeString": "function () pure returns (bytes memory)"
                                        }
                                      },
                                      "id": 5646,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "24376:53:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 5641,
                                    "name": "keccak256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": -8,
                                    "src": "24366:9:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 5647,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "24366:64:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 5640,
                                "name": "_toEthSignedMessage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6446,
                                "src": "24346:19:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function (bytes32) pure returns (bytes memory)"
                                }
                              },
                              "id": 5648,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "24346:85:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 5649,
                              "name": "_enclaveSign",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5473,
                              "src": "24436:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 5638,
                            "name": "_checkSignature",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              6674,
                              6757
                            ],
                            "referencedDeclaration": 6757,
                            "src": "24304:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$",
                              "typeString": "function (address,bytes memory,bytes memory) view returns (bool)"
                            }
                          },
                          "id": 5650,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24304:148:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "24269:183:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5631,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "24261:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 5652,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24261:192:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5653,
                  "nodeType": "ExpressionStatement",
                  "src": "24261:192:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5654,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5490,
                        "src": "24458:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5656,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 370,
                      "src": "24458:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5657,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "24490:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5658,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "ContributionStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 368,
                        "src": "24490:38:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                          "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                        }
                      },
                      "id": 5659,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "24490:45:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                        "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                      }
                    },
                    "src": "24458:77:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                      "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                    }
                  },
                  "id": 5661,
                  "nodeType": "ExpressionStatement",
                  "src": "24458:77:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5666,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5662,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5490,
                        "src": "24539:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5664,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 372,
                      "src": "24539:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5665,
                      "name": "resultHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5539,
                      "src": "24571:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24539:42:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5667,
                  "nodeType": "ExpressionStatement",
                  "src": "24539:42:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5668,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5490,
                        "src": "24585:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5670,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultSeal",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 374,
                      "src": "24585:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5671,
                      "name": "resultSeal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5549,
                      "src": "24617:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24585:42:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5673,
                  "nodeType": "ExpressionStatement",
                  "src": "24585:42:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5674,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5490,
                        "src": "24631:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5676,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "enclaveChallenge",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 376,
                      "src": "24631:29:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5677,
                      "name": "_enclaveChallenge",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5471,
                      "src": "24663:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "24631:49:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 5679,
                  "nodeType": "ExpressionStatement",
                  "src": "24631:49:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5686,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5680,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24685:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5682,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 328,
                      "src": "24685:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5683,
                          "name": "IexecLibCore_v5",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 380,
                          "src": "24717:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                            "typeString": "type(library IexecLibCore_v5)"
                          }
                        },
                        "id": 5684,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "TaskStatusEnum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 326,
                        "src": "24717:30:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                          "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                        }
                      },
                      "id": 5685,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "COMPLETED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "24717:40:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                        "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                      }
                    },
                    "src": "24685:72:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                      "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                    }
                  },
                  "id": 5687,
                  "nodeType": "ExpressionStatement",
                  "src": "24685:72:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5693,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5688,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24761:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5690,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "consensusValue",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 342,
                      "src": "24761:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5691,
                        "name": "contribution",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5490,
                        "src": "24793:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                        }
                      },
                      "id": 5692,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "resultHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 372,
                      "src": "24793:23:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24761:55:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5694,
                  "nodeType": "ExpressionStatement",
                  "src": "24761:55:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5695,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24820:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5697,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealDeadline",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 338,
                      "src": "24820:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5704,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -17,
                          "src": "24896:3:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5701,
                              "name": "REVEAL_DEADLINE_RATIO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 204,
                              "src": "24869:21:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5698,
                                "name": "task",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5482,
                                "src": "24852:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                }
                              },
                              "id": 5699,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "timeref",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 334,
                              "src": "24852:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 5700,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "mul",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10423,
                            "src": "24852:16:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 5702,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24852:39:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5703,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10364,
                        "src": "24852:43:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5705,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "24852:48:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "24820:80:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5707,
                  "nodeType": "ExpressionStatement",
                  "src": "24820:80:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5708,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24904:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5710,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "revealCounter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 344,
                      "src": "24904:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 5711,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "24936:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "24904:33:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5713,
                  "nodeType": "ExpressionStatement",
                  "src": "24904:33:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5718,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5714,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24941:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5716,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "winnerCounter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 346,
                      "src": "24941:18:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 5717,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "24973:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "24941:33:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5719,
                  "nodeType": "ExpressionStatement",
                  "src": "24941:33:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5724,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5720,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "24978:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5722,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "resultDigest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 351,
                      "src": "24978:17:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5723,
                      "name": "_resultDigest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5467,
                      "src": "25010:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24978:45:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 5725,
                  "nodeType": "ExpressionStatement",
                  "src": "24978:45:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5726,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5482,
                        "src": "25027:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5728,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "results",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 353,
                      "src": "25027:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5729,
                      "name": "_results",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5469,
                      "src": "25059:8:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "25027:40:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 5731,
                  "nodeType": "ExpressionStatement",
                  "src": "25027:40:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5737,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "25094:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 5738,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25094:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5732,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5482,
                          "src": "25071:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5735,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "25071:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 5736,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "25071:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 5739,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25071:36:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5740,
                  "nodeType": "ExpressionStatement",
                  "src": "25071:36:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5742,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5482,
                          "src": "25124:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5743,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "25124:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5744,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25137:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5741,
                      "name": "successWork",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3549,
                      "src": "25112:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5745,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25112:33:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5746,
                  "nodeType": "ExpressionStatement",
                  "src": "25112:33:19"
                },
                {
                  "assignments": [
                    5748
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5748,
                      "mutability": "mutable",
                      "name": "workerReward",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "25193:20:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5747,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "25193:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5762,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5758,
                              "name": "deal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5501,
                              "src": "25269:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                "typeString": "struct IexecLibCore_v5.Deal memory"
                              }
                            },
                            "id": 5759,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "schedulerRewardRatio",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 319,
                            "src": "25269:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "313030",
                                "id": 5755,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "25260:3:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_100_by_1",
                                  "typeString": "int_const 100"
                                },
                                "value": "100"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_100_by_1",
                                  "typeString": "int_const 100"
                                }
                              ],
                              "id": 5754,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "25252:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 5753,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "25252:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 5756,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "25252:12:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 5757,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sub",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10389,
                          "src": "25252:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 5760,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25252:43:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5749,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5501,
                            "src": "25219:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 5750,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "25219:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                            "typeString": "struct IexecLibCore_v5.Resource memory"
                          }
                        },
                        "id": 5751,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "25219:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 5752,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "percentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10543,
                      "src": "25219:32:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 5761,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25219:77:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25193:103:19"
                },
                {
                  "assignments": [
                    5764
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5764,
                      "mutability": "mutable",
                      "name": "schedulerReward",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5815,
                      "src": "25300:23:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5763,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "25300:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5771,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5769,
                        "name": "workerReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5748,
                        "src": "25352:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5765,
                            "name": "deal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5501,
                            "src": "25326:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                              "typeString": "struct IexecLibCore_v5.Deal memory"
                            }
                          },
                          "id": 5766,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "workerpool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 295,
                          "src": "25326:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                            "typeString": "struct IexecLibCore_v5.Resource memory"
                          }
                        },
                        "id": 5767,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "price",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 288,
                        "src": "25326:21:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 5768,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10389,
                      "src": "25326:25:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 5770,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25326:39:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "25300:65:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5773,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "25391:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 5774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25391:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5775,
                        "name": "workerReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5748,
                        "src": "25405:12:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5776,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25419:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5772,
                      "name": "rewardForContribution",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3374,
                      "src": "25369:21:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,uint256,bytes32)"
                      }
                    },
                    "id": 5777,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25369:58:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5778,
                  "nodeType": "ExpressionStatement",
                  "src": "25369:58:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5780,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5482,
                          "src": "25451:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5781,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "25451:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5782,
                        "name": "schedulerReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5764,
                        "src": "25464:15:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5783,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25481:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5779,
                      "name": "rewardForScheduling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3413,
                      "src": "25431:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,uint256,bytes32)"
                      }
                    },
                    "id": 5784,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25431:58:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5785,
                  "nodeType": "ExpressionStatement",
                  "src": "25431:58:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5787,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25514:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5788,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "25523:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 5789,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25523:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5790,
                        "name": "resultHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5539,
                        "src": "25537:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5786,
                      "name": "TaskContribute",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7531,
                      "src": "25499:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32)"
                      }
                    },
                    "id": 5791,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25499:49:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5792,
                  "nodeType": "EmitStatement",
                  "src": "25494:54:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5794,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25571:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5795,
                        "name": "resultHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5539,
                        "src": "25580:10:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5793,
                      "name": "TaskConsensus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7537,
                      "src": "25557:13:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,bytes32)"
                      }
                    },
                    "id": 5796,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25557:34:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5797,
                  "nodeType": "EmitStatement",
                  "src": "25552:39:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5799,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25611:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 5800,
                          "name": "_msgSender",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10740,
                          "src": "25620:10:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
                            "typeString": "function () view returns (address payable)"
                          }
                        },
                        "id": 5801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "25620:12:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5802,
                        "name": "_resultDigest",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5467,
                        "src": "25634:13:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 5798,
                      "name": "TaskReveal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7545,
                      "src": "25600:10:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,address,bytes32)"
                      }
                    },
                    "id": 5803,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25600:48:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5804,
                  "nodeType": "EmitStatement",
                  "src": "25595:53:19"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5806,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25670:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5807,
                        "name": "_results",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5469,
                        "src": "25679:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5805,
                      "name": "TaskFinalize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7555,
                      "src": "25657:12:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,bytes memory)"
                      }
                    },
                    "id": 5808,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25657:31:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5809,
                  "nodeType": "EmitStatement",
                  "src": "25652:36:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5811,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5465,
                        "src": "25709:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5812,
                        "name": "_results",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5469,
                        "src": "25718:8:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 5810,
                      "name": "executeCallback",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6243,
                      "src": "25693:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,bytes memory)"
                      }
                    },
                    "id": 5813,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "25693:34:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5814,
                  "nodeType": "ExpressionStatement",
                  "src": "25693:34:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "ec52107d",
            "id": 5816,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contributeAndFinalize",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5477,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "22850:8:19"
            },
            "parameters": {
              "id": 5476,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5465,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22667:20:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5464,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22667:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5467,
                  "mutability": "mutable",
                  "name": "_resultDigest",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22691:26:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5466,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22691:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5469,
                  "mutability": "mutable",
                  "name": "_results",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22721:21:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5468,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22721:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5471,
                  "mutability": "mutable",
                  "name": "_enclaveChallenge",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22746:30:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5470,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22746:7:19",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5473,
                  "mutability": "mutable",
                  "name": "_enclaveSign",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22780:25:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5472,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22780:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5475,
                  "mutability": "mutable",
                  "name": "_authorizationSign",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5816,
                  "src": "22809:31:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5474,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "22809:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22663:178:19"
            },
            "returnParameters": {
              "id": 5478,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22860:0:19"
            },
            "scope": 6368,
            "src": "22633:3098:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5963,
              "nodeType": "Block",
              "src": "26079:1547:19",
              "statements": [
                {
                  "assignments": [
                    5827
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5827,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5963,
                      "src": "26083:38:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5826,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "26083:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5831,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5828,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "26129:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5830,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5829,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5819,
                      "src": "26137:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "26129:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "26083:62:19"
                },
                {
                  "assignments": [
                    5835
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5835,
                      "mutability": "mutable",
                      "name": "consensus",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5963,
                      "src": "26149:43:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Consensus"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5834,
                        "name": "IexecLibCore_v5.Consensus",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 363,
                        "src": "26149:25:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Consensus"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5839,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5836,
                      "name": "m_consensus",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 244,
                      "src": "26195:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Consensus_$363_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Consensus storage ref)"
                      }
                    },
                    "id": 5838,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5837,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5819,
                      "src": "26207:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "26195:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Consensus_$363_storage",
                      "typeString": "struct IexecLibCore_v5.Consensus storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "26149:66:19"
                },
                {
                  "assignments": [
                    5841
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5841,
                      "mutability": "mutable",
                      "name": "trust",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 5963,
                      "src": "26220:13:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5840,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "26220:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5847,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 5842,
                        "name": "m_deals",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 236,
                        "src": "26236:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                          "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                        }
                      },
                      "id": 5845,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 5843,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5827,
                          "src": "26244:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 5844,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "26244:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "26236:20:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_storage",
                        "typeString": "struct IexecLibCore_v5.Deal storage ref"
                      }
                    },
                    "id": 5846,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "trust",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 297,
                    "src": "26236:26:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "26220:42:19"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5863,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 5853,
                          "name": "trust",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5841,
                          "src": "26765:5:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5848,
                              "name": "consensus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5835,
                              "src": "26733:9:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                              }
                            },
                            "id": 5849,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "group",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 360,
                            "src": "26733:15:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                              "typeString": "mapping(bytes32 => uint256)"
                            }
                          },
                          "id": 5851,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 5850,
                            "name": "_consensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5821,
                            "src": "26749:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "26733:27:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5852,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mul",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10423,
                        "src": "26733:31:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5854,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "26733:38:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 5860,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "26804:1:19",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 5858,
                              "name": "trust",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5841,
                              "src": "26794:5:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 5859,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sub",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10389,
                            "src": "26794:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 5861,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "26794:12:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5855,
                            "name": "consensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5835,
                            "src": "26774:9:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Consensus_$363_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Consensus storage pointer"
                            }
                          },
                          "id": 5856,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "total",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 362,
                          "src": "26774:15:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "mul",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 10423,
                        "src": "26774:19:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 5862,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "26774:33:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "26733:74:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 5962,
                  "nodeType": "IfStatement",
                  "src": "26729:894:19",
                  "trueBody": {
                    "id": 5961,
                    "nodeType": "Block",
                    "src": "26811:812:19",
                    "statements": [
                      {
                        "assignments": [
                          5865
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5865,
                            "mutability": "mutable",
                            "name": "winnerCounter",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 5961,
                            "src": "26864:21:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5864,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "26864:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 5867,
                        "initialValue": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 5866,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "26888:1:19",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "26864:25:19"
                      },
                      {
                        "body": {
                          "id": 5915,
                          "nodeType": "Block",
                          "src": "26952:321:19",
                          "statements": [
                            {
                              "assignments": [
                                5881
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 5881,
                                  "mutability": "mutable",
                                  "name": "w",
                                  "nodeType": "VariableDeclaration",
                                  "overrides": null,
                                  "scope": 5915,
                                  "src": "26958:9:19",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  },
                                  "typeName": {
                                    "id": 5880,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "26958:7:19",
                                    "stateMutability": "nonpayable",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 5886,
                              "initialValue": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 5882,
                                    "name": "task",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5827,
                                    "src": "26970:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                      "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                    }
                                  },
                                  "id": 5883,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "contributors",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 349,
                                  "src": "26970:17:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                    "typeString": "address[] storage ref"
                                  }
                                },
                                "id": 5885,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5884,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5869,
                                  "src": "26988:1:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "26970:20:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "26958:32:19"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "id": 5905,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 5894,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 5887,
                                          "name": "m_contributions",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 250,
                                          "src": "27010:15:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                            "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                                          }
                                        },
                                        "id": 5889,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 5888,
                                          "name": "_taskid",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5819,
                                          "src": "27026:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "27010:24:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                                          "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                                        }
                                      },
                                      "id": 5891,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 5890,
                                        "name": "w",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5881,
                                        "src": "27035:1:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "27010:27:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Contribution_$379_storage",
                                        "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                                      }
                                    },
                                    "id": 5892,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "resultHash",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 372,
                                    "src": "27010:38:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "id": 5893,
                                    "name": "_consensus",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5821,
                                    "src": "27052:10:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "27010:52:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "&&",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                    "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                  },
                                  "id": 5904,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 5895,
                                          "name": "m_contributions",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 250,
                                          "src": "27076:15:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                            "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                                          }
                                        },
                                        "id": 5897,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 5896,
                                          "name": "_taskid",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5819,
                                          "src": "27092:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "27076:24:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                                          "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                                        }
                                      },
                                      "id": 5899,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 5898,
                                        "name": "w",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5881,
                                        "src": "27101:1:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "27076:27:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Contribution_$379_storage",
                                        "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                                      }
                                    },
                                    "id": 5900,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "status",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 370,
                                    "src": "27076:34:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                      "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 5901,
                                        "name": "IexecLibCore_v5",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 380,
                                        "src": "27114:15:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                          "typeString": "type(library IexecLibCore_v5)"
                                        }
                                      },
                                      "id": 5902,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "ContributionStatusEnum",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 368,
                                      "src": "27114:38:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                                        "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                                      }
                                    },
                                    "id": 5903,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberName": "CONTRIBUTED",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "27114:50:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                                      "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                                    }
                                  },
                                  "src": "27076:88:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "src": "27010:154:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 5914,
                              "nodeType": "IfStatement",
                              "src": "26996:272:19",
                              "trueBody": {
                                "id": 5913,
                                "nodeType": "Block",
                                "src": "27218:50:19",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5911,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 5906,
                                        "name": "winnerCounter",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5865,
                                        "src": "27225:13:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 5909,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "27259:1:19",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 5907,
                                            "name": "winnerCounter",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 5865,
                                            "src": "27241:13:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 5908,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "add",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 10364,
                                          "src": "27241:17:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                          }
                                        },
                                        "id": 5910,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "27241:20:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "27225:36:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 5912,
                                    "nodeType": "ExpressionStatement",
                                    "src": "27225:36:19"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 5876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 5872,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5869,
                            "src": "26914:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5873,
                                "name": "task",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5827,
                                "src": "26918:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                  "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                }
                              },
                              "id": 5874,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "contributors",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 349,
                              "src": "26918:17:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 5875,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "26918:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "26914:28:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 5916,
                        "initializationExpression": {
                          "assignments": [
                            5869
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 5869,
                              "mutability": "mutable",
                              "name": "i",
                              "nodeType": "VariableDeclaration",
                              "overrides": null,
                              "scope": 5916,
                              "src": "26899:9:19",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 5868,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "26899:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "value": null,
                              "visibility": "internal"
                            }
                          ],
                          "id": 5871,
                          "initialValue": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 5870,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "26911:1:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "26899:13:19"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 5878,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": true,
                            "src": "26944:3:19",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 5877,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5869,
                              "src": "26946:1:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 5879,
                          "nodeType": "ExpressionStatement",
                          "src": "26944:3:19"
                        },
                        "nodeType": "ForStatement",
                        "src": "26894:379:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5923,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5917,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5827,
                              "src": "27331:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5919,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 328,
                            "src": "27331:11:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 5920,
                                "name": "IexecLibCore_v5",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 380,
                                "src": "27353:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                  "typeString": "type(library IexecLibCore_v5)"
                                }
                              },
                              "id": 5921,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "TaskStatusEnum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 326,
                              "src": "27353:30:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_TaskStatusEnum_$326_$",
                                "typeString": "type(enum IexecLibCore_v5.TaskStatusEnum)"
                              }
                            },
                            "id": 5922,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "REVEALING",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "27353:40:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                              "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                            }
                          },
                          "src": "27331:62:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_TaskStatusEnum_$326",
                            "typeString": "enum IexecLibCore_v5.TaskStatusEnum"
                          }
                        },
                        "id": 5924,
                        "nodeType": "ExpressionStatement",
                        "src": "27331:62:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5929,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5925,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5827,
                              "src": "27398:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5927,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "consensusValue",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 342,
                            "src": "27398:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 5928,
                            "name": "_consensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5821,
                            "src": "27420:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "27398:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 5930,
                        "nodeType": "ExpressionStatement",
                        "src": "27398:32:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5942,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5931,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5827,
                              "src": "27435:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5933,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "revealDeadline",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 338,
                            "src": "27435:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5940,
                                "name": "now",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -17,
                                "src": "27501:3:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 5937,
                                    "name": "REVEAL_DEADLINE_RATIO",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 204,
                                    "src": "27474:21:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 5934,
                                      "name": "task",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5827,
                                      "src": "27457:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                        "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                      }
                                    },
                                    "id": 5935,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "timeref",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 334,
                                    "src": "27457:12:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 5936,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "mul",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10423,
                                  "src": "27457:16:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 5938,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "27457:39:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 5939,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "add",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10364,
                              "src": "27457:43:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 5941,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "27457:48:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "27435:70:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5943,
                        "nodeType": "ExpressionStatement",
                        "src": "27435:70:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5948,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5944,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5827,
                              "src": "27510:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5946,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "revealCounter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 344,
                            "src": "27510:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 5947,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "27532:1:19",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "27510:23:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5949,
                        "nodeType": "ExpressionStatement",
                        "src": "27510:23:19"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5954,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 5950,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5827,
                              "src": "27538:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 5952,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "winnerCounter",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 346,
                            "src": "27538:18:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 5953,
                            "name": "winnerCounter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5865,
                            "src": "27560:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "27538:35:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5955,
                        "nodeType": "ExpressionStatement",
                        "src": "27538:35:19"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 5957,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5819,
                              "src": "27598:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 5958,
                              "name": "_consensus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5821,
                              "src": "27607:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 5956,
                            "name": "TaskConsensus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7537,
                            "src": "27584:13:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32,bytes32)"
                            }
                          },
                          "id": 5959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "27584:34:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5960,
                        "nodeType": "EmitStatement",
                        "src": "27579:39:19"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 5817,
              "nodeType": "StructuredDocumentation",
              "src": "25734:233:19",
              "text": "*************************************************************************\n                      Internal Consensus methods                        ***************************************************************************"
            },
            "id": 5964,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "checkConsensus",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 5822,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5819,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5964,
                  "src": "26029:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5818,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "26029:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5821,
                  "mutability": "mutable",
                  "name": "_consensus",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 5964,
                  "src": "26048:18:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5820,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "26048:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "26025:42:19"
            },
            "returnParameters": {
              "id": 5823,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "26079:0:19"
            },
            "scope": 6368,
            "src": "26002:1624:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6189,
              "nodeType": "Block",
              "src": "27717:2867:19",
              "statements": [
                {
                  "assignments": [
                    5972
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5972,
                      "mutability": "mutable",
                      "name": "task",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6189,
                      "src": "27721:33:19",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                        "typeString": "struct IexecLibCore_v5.Task"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5971,
                        "name": "IexecLibCore_v5.Task",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 356,
                        "src": "27721:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5976,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5973,
                      "name": "m_tasks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 240,
                      "src": "27757:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                      }
                    },
                    "id": 5975,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 5974,
                      "name": "_taskid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5966,
                      "src": "27765:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "27757:16:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Task_$356_storage",
                      "typeString": "struct IexecLibCore_v5.Task storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27721:52:19"
                },
                {
                  "assignments": [
                    5980
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5980,
                      "mutability": "mutable",
                      "name": "deal",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6189,
                      "src": "27777:33:19",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Deal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 5979,
                        "name": "IexecLibCore_v5.Deal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 320,
                        "src": "27777:20:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5985,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 5981,
                      "name": "m_deals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 236,
                      "src": "27813:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                        "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                      }
                    },
                    "id": 5984,
                    "indexExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5982,
                        "name": "task",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5972,
                        "src": "27821:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                          "typeString": "struct IexecLibCore_v5.Task storage pointer"
                        }
                      },
                      "id": 5983,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "dealid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 330,
                      "src": "27821:11:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "27813:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Deal_$320_storage",
                      "typeString": "struct IexecLibCore_v5.Deal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27777:56:19"
                },
                {
                  "assignments": [
                    5987
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5987,
                      "mutability": "mutable",
                      "name": "totalLogWeight",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6189,
                      "src": "27838:22:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5986,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "27838:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5989,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 5988,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "27863:1:19",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27838:26:19"
                },
                {
                  "assignments": [
                    5991
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5991,
                      "mutability": "mutable",
                      "name": "totalReward",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6189,
                      "src": "27868:19:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5990,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "27868:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5995,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5992,
                        "name": "deal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5980,
                        "src": "27893:4:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                          "typeString": "struct IexecLibCore_v5.Deal memory"
                        }
                      },
                      "id": 5993,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "workerpool",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 295,
                      "src": "27893:15:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Resource_$289_memory_ptr",
                        "typeString": "struct IexecLibCore_v5.Resource memory"
                      }
                    },
                    "id": 5994,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "price",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 288,
                    "src": "27893:21:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "27868:46:19"
                },
                {
                  "body": {
                    "id": 6050,
                    "nodeType": "Block",
                    "src": "27976:478:19",
                    "statements": [
                      {
                        "assignments": [
                          6009
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6009,
                            "mutability": "mutable",
                            "name": "worker",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 6050,
                            "src": "27981:43:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 6008,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "27981:7:19",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6014,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6010,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5972,
                              "src": "28033:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 6011,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contributors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 349,
                            "src": "28033:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 6013,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6012,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5997,
                            "src": "28051:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "28033:20:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "27981:72:19"
                      },
                      {
                        "assignments": [
                          6018
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6018,
                            "mutability": "mutable",
                            "name": "contribution",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 6050,
                            "src": "28058:49:19",
                            "stateVariable": false,
                            "storageLocation": "storage",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 6017,
                              "name": "IexecLibCore_v5.Contribution",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 379,
                              "src": "28058:28:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Contribution"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6024,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6019,
                              "name": "m_contributions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 250,
                              "src": "28110:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                              }
                            },
                            "id": 6021,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6020,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5966,
                              "src": "28126:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "28110:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                              "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                            }
                          },
                          "id": 6023,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6022,
                            "name": "worker",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6009,
                            "src": "28135:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "28110:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Contribution_$379_storage",
                            "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28058:84:19"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          },
                          "id": 6030,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6025,
                              "name": "contribution",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6018,
                              "src": "28152:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                              }
                            },
                            "id": 6026,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 370,
                            "src": "28152:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                              "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 6027,
                                "name": "IexecLibCore_v5",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 380,
                                "src": "28175:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                  "typeString": "type(library IexecLibCore_v5)"
                                }
                              },
                              "id": 6028,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "ContributionStatusEnum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 368,
                              "src": "28175:38:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                                "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                              }
                            },
                            "id": 6029,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "PROVED",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "28175:45:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                              "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                            }
                          },
                          "src": "28152:68:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 6048,
                          "nodeType": "Block",
                          "src": "28391:59:19",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6046,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6040,
                                  "name": "totalReward",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5991,
                                  "src": "28397:11:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 6043,
                                        "name": "deal",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5980,
                                        "src": "28427:4:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                          "typeString": "struct IexecLibCore_v5.Deal memory"
                                        }
                                      },
                                      "id": 6044,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "workerStake",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 317,
                                      "src": "28427:16:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6041,
                                      "name": "totalReward",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5991,
                                      "src": "28411:11:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6042,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 10364,
                                    "src": "28411:15:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 6045,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "28411:33:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "28397:47:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6047,
                              "nodeType": "ExpressionStatement",
                              "src": "28397:47:19"
                            }
                          ]
                        },
                        "id": 6049,
                        "nodeType": "IfStatement",
                        "src": "28148:302:19",
                        "trueBody": {
                          "id": 6039,
                          "nodeType": "Block",
                          "src": "28225:68:19",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6037,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6031,
                                  "name": "totalLogWeight",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5987,
                                  "src": "28231:14:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 6034,
                                        "name": "contribution",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6018,
                                        "src": "28267:12:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                          "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                                        }
                                      },
                                      "id": 6035,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "weight",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 378,
                                      "src": "28267:19:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6032,
                                      "name": "totalLogWeight",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5987,
                                      "src": "28248:14:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6033,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 10364,
                                    "src": "28248:18:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 6036,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "28248:39:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "28231:56:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6038,
                              "nodeType": "ExpressionStatement",
                              "src": "28231:56:19"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6004,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6000,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5997,
                      "src": "27939:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6001,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5972,
                          "src": "27943:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 6002,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "27943:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 6003,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "27943:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "27939:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6051,
                  "initializationExpression": {
                    "assignments": [
                      5997
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5997,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 6051,
                        "src": "27924:9:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5996,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "27924:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 5999,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5998,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "27936:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "27924:13:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6006,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "27969:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6005,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5997,
                        "src": "27971:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6007,
                    "nodeType": "ExpressionStatement",
                    "src": "27969:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "27919:535:19"
                },
                {
                  "assignments": [
                    6053
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6053,
                      "mutability": "mutable",
                      "name": "workersReward",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6189,
                      "src": "28504:21:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6052,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "28504:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6065,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6061,
                              "name": "deal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5980,
                              "src": "28568:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Deal_$320_memory_ptr",
                                "typeString": "struct IexecLibCore_v5.Deal memory"
                              }
                            },
                            "id": 6062,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "schedulerRewardRatio",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 319,
                            "src": "28568:25:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "313030",
                                "id": 6058,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "28559:3:19",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_100_by_1",
                                  "typeString": "int_const 100"
                                },
                                "value": "100"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_100_by_1",
                                  "typeString": "int_const 100"
                                }
                              ],
                              "id": 6057,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "28551:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 6056,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "28551:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 6059,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "28551:12:19",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 6060,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sub",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10389,
                          "src": "28551:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 6063,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "28551:43:19",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6054,
                        "name": "totalReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5991,
                        "src": "28528:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 6055,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "percentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10543,
                      "src": "28528:22:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 6064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "28528:67:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "28504:91:19"
                },
                {
                  "body": {
                    "id": 6180,
                    "nodeType": "Block",
                    "src": "28657:1816:19",
                    "statements": [
                      {
                        "assignments": [
                          6079
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6079,
                            "mutability": "mutable",
                            "name": "worker",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 6180,
                            "src": "28662:43:19",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 6078,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "28662:7:19",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6084,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6080,
                              "name": "task",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5972,
                              "src": "28714:4:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Task storage pointer"
                              }
                            },
                            "id": 6081,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "contributors",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 349,
                            "src": "28714:17:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_storage",
                              "typeString": "address[] storage ref"
                            }
                          },
                          "id": 6083,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6082,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6067,
                            "src": "28732:1:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "28714:20:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28662:72:19"
                      },
                      {
                        "assignments": [
                          6088
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6088,
                            "mutability": "mutable",
                            "name": "contribution",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 6180,
                            "src": "28739:49:19",
                            "stateVariable": false,
                            "storageLocation": "storage",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                              "typeString": "struct IexecLibCore_v5.Contribution"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 6087,
                              "name": "IexecLibCore_v5.Contribution",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 379,
                              "src": "28739:28:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Contribution"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 6094,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 6089,
                              "name": "m_contributions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 250,
                              "src": "28791:15:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$_$",
                                "typeString": "mapping(bytes32 => mapping(address => struct IexecLibCore_v5.Contribution storage ref))"
                              }
                            },
                            "id": 6091,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 6090,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5966,
                              "src": "28807:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "28791:24:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contribution_$379_storage_$",
                              "typeString": "mapping(address => struct IexecLibCore_v5.Contribution storage ref)"
                            }
                          },
                          "id": 6093,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6092,
                            "name": "worker",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6079,
                            "src": "28816:6:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "28791:32:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Contribution_$379_storage",
                            "typeString": "struct IexecLibCore_v5.Contribution storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "28739:84:19"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                            "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                          },
                          "id": 6100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 6095,
                              "name": "contribution",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6088,
                              "src": "28833:12:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                              }
                            },
                            "id": 6096,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 370,
                            "src": "28833:19:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                              "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 6097,
                                "name": "IexecLibCore_v5",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 380,
                                "src": "28856:15:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IexecLibCore_v5_$380_$",
                                  "typeString": "type(library IexecLibCore_v5)"
                                }
                              },
                              "id": 6098,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "ContributionStatusEnum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 368,
                              "src": "28856:38:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_ContributionStatusEnum_$368_$",
                                "typeString": "type(enum IexecLibCore_v5.ContributionStatusEnum)"
                              }
                            },
                            "id": 6099,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "PROVED",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "28856:45:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_ContributionStatusEnum_$368",
                              "typeString": "enum IexecLibCore_v5.ContributionStatusEnum"
                            }
                          },
                          "src": "28833:68:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 6178,
                          "nodeType": "Block",
                          "src": "29837:632:19",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6154,
                                      "name": "task",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5972,
                                      "src": "29878:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                        "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                      }
                                    },
                                    "id": 6155,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "dealid",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 330,
                                    "src": "29878:11:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6156,
                                    "name": "worker",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6079,
                                    "src": "29891:6:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6157,
                                    "name": "_taskid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5966,
                                    "src": "29899:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 6153,
                                  "name": "seizeContribution",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3393,
                                  "src": "29860:17:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$returns$__$",
                                    "typeString": "function (bytes32,address,bytes32)"
                                  }
                                },
                                "id": 6158,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "29860:47:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6159,
                              "nodeType": "ExpressionStatement",
                              "src": "29860:47:19"
                            },
                            {
                              "id": 6177,
                              "nodeType": "Block",
                              "src": "29952:512:19",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 6170,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 6160,
                                        "name": "m_workerScores",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 254,
                                        "src": "30344:14:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                          "typeString": "mapping(address => uint256)"
                                        }
                                      },
                                      "id": 6162,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 6161,
                                        "name": "worker",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6079,
                                        "src": "30359:6:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "nodeType": "IndexAccess",
                                      "src": "30344:22:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "32",
                                          "id": 6167,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "30406:1:19",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_2_by_1",
                                            "typeString": "int_const 2"
                                          },
                                          "value": "2"
                                        },
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "33",
                                          "id": 6168,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "30408:1:19",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_3_by_1",
                                            "typeString": "int_const 3"
                                          },
                                          "value": "3"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_rational_2_by_1",
                                            "typeString": "int_const 2"
                                          },
                                          {
                                            "typeIdentifier": "t_rational_3_by_1",
                                            "typeString": "int_const 3"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 6163,
                                            "name": "m_workerScores",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 254,
                                            "src": "30369:14:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                              "typeString": "mapping(address => uint256)"
                                            }
                                          },
                                          "id": 6165,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 6164,
                                            "name": "worker",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6079,
                                            "src": "30384:6:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "30369:22:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 6166,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "mulByFraction",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 10526,
                                        "src": "30369:36:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                          "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                                        }
                                      },
                                      "id": 6169,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "30369:41:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "30344:66:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 6171,
                                  "nodeType": "ExpressionStatement",
                                  "src": "30344:66:19"
                                },
                                {
                                  "eventCall": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 6173,
                                        "name": "worker",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6079,
                                        "src": "30441:6:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 6174,
                                        "name": "_taskid",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5966,
                                        "src": "30449:7:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "id": 6172,
                                      "name": "FaultyContribution",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7571,
                                      "src": "30422:18:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                                        "typeString": "function (address,bytes32)"
                                      }
                                    },
                                    "id": 6175,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "30422:35:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 6176,
                                  "nodeType": "EmitStatement",
                                  "src": "30417:40:19"
                                }
                              ]
                            }
                          ]
                        },
                        "id": 6179,
                        "nodeType": "IfStatement",
                        "src": "28829:1640:19",
                        "trueBody": {
                          "id": 6152,
                          "nodeType": "Block",
                          "src": "28906:836:19",
                          "statements": [
                            {
                              "assignments": [
                                6102
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 6102,
                                  "mutability": "mutable",
                                  "name": "workerReward",
                                  "nodeType": "VariableDeclaration",
                                  "overrides": null,
                                  "scope": 6152,
                                  "src": "28912:20:19",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 6101,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "28912:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 6109,
                              "initialValue": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6105,
                                      "name": "contribution",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6088,
                                      "src": "28963:12:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Contribution_$379_storage_ptr",
                                        "typeString": "struct IexecLibCore_v5.Contribution storage pointer"
                                      }
                                    },
                                    "id": 6106,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "weight",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 378,
                                    "src": "28963:19:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6107,
                                    "name": "totalLogWeight",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5987,
                                    "src": "28984:14:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 6103,
                                    "name": "workersReward",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6053,
                                    "src": "28935:13:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 6104,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "mulByFraction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 10526,
                                  "src": "28935:27:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 6108,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "28935:64:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "28912:87:19"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6115,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6110,
                                  "name": "totalReward",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5991,
                                  "src": "29005:11:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6113,
                                      "name": "workerReward",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6102,
                                      "src": "29044:12:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6111,
                                      "name": "totalReward",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5991,
                                      "src": "29028:11:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6112,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sub",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 10389,
                                    "src": "29028:15:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 6114,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "29028:29:19",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "29005:52:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6116,
                              "nodeType": "ExpressionStatement",
                              "src": "29005:52:19"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6118,
                                      "name": "task",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5972,
                                      "src": "29083:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                        "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                      }
                                    },
                                    "id": 6119,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "dealid",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 330,
                                    "src": "29083:11:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6120,
                                    "name": "worker",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6079,
                                    "src": "29096:6:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 6117,
                                  "name": "unlockContribution",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3358,
                                  "src": "29064:18:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                                    "typeString": "function (bytes32,address)"
                                  }
                                },
                                "id": 6121,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "29064:39:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6122,
                              "nodeType": "ExpressionStatement",
                              "src": "29064:39:19"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6124,
                                    "name": "worker",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6079,
                                    "src": "29131:6:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6125,
                                    "name": "workerReward",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6102,
                                    "src": "29139:12:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 6126,
                                    "name": "_taskid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5966,
                                    "src": "29153:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "id": 6123,
                                  "name": "rewardForContribution",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3374,
                                  "src": "29109:21:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$__$",
                                    "typeString": "function (address,uint256,bytes32)"
                                  }
                                },
                                "id": 6127,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "29109:52:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6128,
                              "nodeType": "ExpressionStatement",
                              "src": "29109:52:19"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 6133,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6129,
                                      "name": "task",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5972,
                                      "src": "29215:4:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                                        "typeString": "struct IexecLibCore_v5.Task storage pointer"
                                      }
                                    },
                                    "id": 6130,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "contributors",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 349,
                                    "src": "29215:17:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                      "typeString": "address[] storage ref"
                                    }
                                  },
                                  "id": 6131,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "29215:24:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 6132,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "29242:1:19",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "29215:28:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 6151,
                              "nodeType": "IfStatement",
                              "src": "29211:526:19",
                              "trueBody": {
                                "id": 6150,
                                "nodeType": "Block",
                                "src": "29249:488:19",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6143,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 6134,
                                          "name": "m_workerScores",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 254,
                                          "src": "29627:14:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                            "typeString": "mapping(address => uint256)"
                                          }
                                        },
                                        "id": 6136,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 6135,
                                          "name": "worker",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6079,
                                          "src": "29642:6:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "29627:22:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31",
                                            "id": 6141,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "29679:1:19",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "baseExpression": {
                                              "argumentTypes": null,
                                              "id": 6137,
                                              "name": "m_workerScores",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 254,
                                              "src": "29652:14:19",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                              }
                                            },
                                            "id": 6139,
                                            "indexExpression": {
                                              "argumentTypes": null,
                                              "id": 6138,
                                              "name": "worker",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6079,
                                              "src": "29667:6:19",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "29652:22:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 6140,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "add",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 10364,
                                          "src": "29652:26:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                          }
                                        },
                                        "id": 6142,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "29652:29:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "29627:54:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 6144,
                                    "nodeType": "ExpressionStatement",
                                    "src": "29627:54:19"
                                  },
                                  {
                                    "eventCall": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 6146,
                                          "name": "worker",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6079,
                                          "src": "29714:6:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        {
                                          "argumentTypes": null,
                                          "id": 6147,
                                          "name": "_taskid",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5966,
                                          "src": "29722:7:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          },
                                          {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                          }
                                        ],
                                        "id": 6145,
                                        "name": "AccurateContribution",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7565,
                                        "src": "29693:20:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                                          "typeString": "function (address,bytes32)"
                                        }
                                      },
                                      "id": 6148,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "29693:37:19",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 6149,
                                    "nodeType": "EmitStatement",
                                    "src": "29688:42:19"
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6074,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6070,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6067,
                      "src": "28620:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6071,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5972,
                          "src": "28624:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 6072,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "contributors",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 349,
                        "src": "28624:17:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 6073,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "28624:24:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "28620:28:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6181,
                  "initializationExpression": {
                    "assignments": [
                      6067
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6067,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 6181,
                        "src": "28605:9:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6066,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "28605:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 6069,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 6068,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "28617:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "28605:13:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6076,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "28650:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6075,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6067,
                        "src": "28652:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6077,
                    "nodeType": "ExpressionStatement",
                    "src": "28650:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "28600:1873:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 6183,
                          "name": "task",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5972,
                          "src": "30546:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage_ptr",
                            "typeString": "struct IexecLibCore_v5.Task storage pointer"
                          }
                        },
                        "id": 6184,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "30546:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6185,
                        "name": "totalReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5991,
                        "src": "30559:11:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 6186,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5966,
                        "src": "30572:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 6182,
                      "name": "rewardForScheduling",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3413,
                      "src": "30526:19:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32,uint256,bytes32)"
                      }
                    },
                    "id": 6187,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "30526:54:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6188,
                  "nodeType": "ExpressionStatement",
                  "src": "30526:54:19"
                }
              ]
            },
            "documentation": null,
            "id": 6190,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "distributeRewards",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 5967,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5966,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6190,
                  "src": "27689:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5965,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "27689:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "27688:17:19"
            },
            "returnParameters": {
              "id": 5968,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "27717:0:19"
            },
            "scope": 6368,
            "src": "27662:2922:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6242,
              "nodeType": "Block",
              "src": "30719:594:19",
              "statements": [
                {
                  "assignments": [
                    6199
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6199,
                      "mutability": "mutable",
                      "name": "target",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 6242,
                      "src": "30723:14:19",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6198,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "30723:7:19",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6207,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 6200,
                        "name": "m_deals",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 236,
                        "src": "30740:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Deal_$320_storage_$",
                          "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Deal storage ref)"
                        }
                      },
                      "id": 6205,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 6201,
                            "name": "m_tasks",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 240,
                            "src": "30748:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Task_$356_storage_$",
                              "typeString": "mapping(bytes32 => struct IexecLibCore_v5.Task storage ref)"
                            }
                          },
                          "id": 6203,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 6202,
                            "name": "_taskid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6193,
                            "src": "30756:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "30748:16:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Task_$356_storage",
                            "typeString": "struct IexecLibCore_v5.Task storage ref"
                          }
                        },
                        "id": 6204,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "dealid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 330,
                        "src": "30748:23:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "30740:32:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Deal_$320_storage",
                        "typeString": "struct IexecLibCore_v5.Deal storage ref"
                      }
                    },
                    "id": 6206,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "callback",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 307,
                    "src": "30740:41:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "30723:58:19"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 6213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6208,
                      "name": "target",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6199,
                      "src": "30789:6:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 6211,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "30807:1:19",
                          "subdenomination": null,
                          "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": 6210,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "30799:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 6209,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "30799:7:19",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 6212,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "30799:10:19",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "30789:20:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 6241,
                  "nodeType": "IfStatement",
                  "src": "30785:525:19",
                  "trueBody": {
                    "id": 6240,
                    "nodeType": "Block",
                    "src": "30813:497:19",
                    "statements": [
                      {
                        "clauses": [
                          {
                            "block": {
                              "id": 6223,
                              "nodeType": "Block",
                              "src": "31072:42:19",
                              "statements": []
                            },
                            "errorName": "",
                            "id": 6224,
                            "nodeType": "TryCatchClause",
                            "parameters": null,
                            "src": "31072:42:19"
                          },
                          {
                            "block": {
                              "id": 6237,
                              "nodeType": "Block",
                              "src": "31159:147:19",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 6234,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "argumentTypes": null,
                                          "arguments": [],
                                          "expression": {
                                            "argumentTypes": [],
                                            "id": 6229,
                                            "name": "gasleft",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -7,
                                            "src": "31240:7:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
                                              "typeString": "function () view returns (uint256)"
                                            }
                                          },
                                          "id": 6230,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "31240:9:19",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">",
                                        "rightExpression": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "id": 6233,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "argumentTypes": null,
                                            "id": 6231,
                                            "name": "m_callbackgas",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 258,
                                            "src": "31252:13:19",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "/",
                                          "rightExpression": {
                                            "argumentTypes": null,
                                            "hexValue": "3633",
                                            "id": 6232,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "31268:2:19",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_63_by_1",
                                              "typeString": "int_const 63"
                                            },
                                            "value": "63"
                                          },
                                          "src": "31252:18:19",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "31240:30:19",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      ],
                                      "id": 6228,
                                      "name": "assert",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": -3,
                                      "src": "31233:6:19",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                                        "typeString": "function (bool) pure"
                                      }
                                    },
                                    "id": 6235,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "31233:38:19",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 6236,
                                  "nodeType": "ExpressionStatement",
                                  "src": "31233:38:19"
                                }
                              ]
                            },
                            "errorName": "",
                            "id": 6238,
                            "nodeType": "TryCatchClause",
                            "parameters": {
                              "id": 6227,
                              "nodeType": "ParameterList",
                              "parameters": [
                                {
                                  "constant": false,
                                  "id": 6226,
                                  "mutability": "mutable",
                                  "name": "",
                                  "nodeType": "VariableDeclaration",
                                  "overrides": null,
                                  "scope": 6238,
                                  "src": "31125:12:19",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 6225,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "31125:5:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "src": "31124:31:19"
                            },
                            "src": "31118:188:19"
                          }
                        ],
                        "externalCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6220,
                              "name": "_taskid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6193,
                              "src": "31050:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 6221,
                              "name": "_results",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6195,
                              "src": "31059:8:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6215,
                                    "name": "target",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6199,
                                    "src": "31008:6:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 6214,
                                  "name": "IOracleConsumer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10137,
                                  "src": "30992:15:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_IOracleConsumer_$10137_$",
                                    "typeString": "type(contract IOracleConsumer)"
                                  }
                                },
                                "id": 6216,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "30992:23:19",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IOracleConsumer_$10137",
                                  "typeString": "contract IOracleConsumer"
                                }
                              },
                              "id": 6217,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "receiveResult",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 10136,
                              "src": "30992:37:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$",
                                "typeString": "function (bytes32,bytes memory) external"
                              }
                            },
                            "id": 6219,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "names": [
                              "gas"
                            ],
                            "nodeType": "FunctionCallOptions",
                            "options": [
                              {
                                "argumentTypes": null,
                                "id": 6218,
                                "name": "m_callbackgas",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 258,
                                "src": "31035:13:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "src": "30992:57:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$gas",
                              "typeString": "function (bytes32,bytes memory) external"
                            }
                          },
                          "id": 6222,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "30992:76:19",
                          "tryCall": true,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6239,
                        "nodeType": "TryStatement",
                        "src": "30988:318:19"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 6191,
              "nodeType": "StructuredDocumentation",
              "src": "30587:54:19",
              "text": "Callback for smartcontracts using EIP1154"
            },
            "id": 6243,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "executeCallback",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 6196,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6193,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6243,
                  "src": "30668:15:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6192,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "30668:7:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6195,
                  "mutability": "mutable",
                  "name": "_results",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6243,
                  "src": "30685:21:19",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6194,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "30685:5:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "30667:40:19"
            },
            "returnParameters": {
              "id": 6197,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "30719:0:19"
            },
            "scope": 6368,
            "src": "30643:670:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              7689
            ],
            "body": {
              "id": 6288,
              "nodeType": "Block",
              "src": "31669:149:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6257,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6247,
                            "src": "31681:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 6258,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "31681:14:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6259,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6250,
                            "src": "31699:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 6260,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "31699:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "31681:29:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6256,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "31673:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6262,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "31673:38:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6263,
                  "nodeType": "ExpressionStatement",
                  "src": "31673:38:19"
                },
                {
                  "body": {
                    "id": 6284,
                    "nodeType": "Block",
                    "src": "31759:41:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6276,
                                "name": "_dealid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6247,
                                "src": "31775:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 6278,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6277,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6265,
                                "src": "31783:1:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "31775:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6279,
                                "name": "_idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6250,
                                "src": "31787:4:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 6281,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6280,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6265,
                                "src": "31792:1:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "31787:7:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6275,
                            "name": "initialize",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4717,
                            "src": "31764:10:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32,uint256) returns (bytes32)"
                            }
                          },
                          "id": 6282,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31764:31:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 6283,
                        "nodeType": "ExpressionStatement",
                        "src": "31764:31:19"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6271,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6268,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6265,
                      "src": "31732:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6269,
                        "name": "_dealid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6247,
                        "src": "31736:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 6270,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "31736:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "31732:18:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6285,
                  "initializationExpression": {
                    "assignments": [
                      6265
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6265,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 6285,
                        "src": "31720:6:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6264,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "31720:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 6267,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 6266,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "31729:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "31720:10:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6273,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "31752:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6272,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6265,
                        "src": "31754:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6274,
                    "nodeType": "ExpressionStatement",
                    "src": "31752:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "31715:85:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 6286,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "31810:4:19",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 6255,
                  "id": 6287,
                  "nodeType": "Return",
                  "src": "31803:11:19"
                }
              ]
            },
            "documentation": {
              "id": 6244,
              "nodeType": "StructuredDocumentation",
              "src": "31316:233:19",
              "text": "*************************************************************************\n                           Array operations                             ***************************************************************************"
            },
            "functionSelector": "b504681d",
            "id": 6289,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializeArray",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6252,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "31644:8:19"
            },
            "parameters": {
              "id": 6251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6247,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6289,
                  "src": "31579:26:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6245,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "31579:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6246,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31579:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6250,
                  "mutability": "mutable",
                  "name": "_idx",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6289,
                  "src": "31609:23:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6248,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "31609:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6249,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31609:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31575:58:19"
            },
            "returnParameters": {
              "id": 6255,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6254,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6289,
                  "src": "31662:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6253,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "31662:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31661:6:19"
            },
            "scope": 6368,
            "src": "31551:267:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7697
            ],
            "body": {
              "id": 6319,
              "nodeType": "Block",
              "src": "31907:93:19",
              "statements": [
                {
                  "body": {
                    "id": 6315,
                    "nodeType": "Block",
                    "src": "31955:27:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 6310,
                                "name": "_taskid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6292,
                                "src": "31966:7:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 6312,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 6311,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6299,
                                "src": "31974:1:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "31966:10:19",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 6309,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5463,
                            "src": "31960:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 6313,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "31960:17:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6314,
                        "nodeType": "ExpressionStatement",
                        "src": "31960:17:19"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6305,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6302,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6299,
                      "src": "31928:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6303,
                        "name": "_taskid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6292,
                        "src": "31932:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 6304,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "31932:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "31928:18:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6316,
                  "initializationExpression": {
                    "assignments": [
                      6299
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6299,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 6316,
                        "src": "31916:6:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6298,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "31916:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 6301,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 6300,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "31925:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "31916:10:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6307,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "31948:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6306,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6299,
                        "src": "31950:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6308,
                    "nodeType": "ExpressionStatement",
                    "src": "31948:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "31911:71:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 6317,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "31992:4:19",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 6297,
                  "id": 6318,
                  "nodeType": "Return",
                  "src": "31985:11:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "fa055d7e",
            "id": 6320,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "claimArray",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6294,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "31882:8:19"
            },
            "parameters": {
              "id": 6293,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6292,
                  "mutability": "mutable",
                  "name": "_taskid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6320,
                  "src": "31844:26:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6290,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "31844:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6291,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "31844:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31840:31:19"
            },
            "returnParameters": {
              "id": 6297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6296,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6320,
                  "src": "31900:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6295,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "31900:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "31899:6:19"
            },
            "scope": 6368,
            "src": "31821:179:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7708
            ],
            "body": {
              "id": 6366,
              "nodeType": "Block",
              "src": "32129:156:19",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6337,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6333,
                            "name": "_dealid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6323,
                            "src": "32141:7:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 6334,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "32141:14:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 6335,
                            "name": "_idx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6326,
                            "src": "32159:4:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 6336,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "32159:11:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "32141:29:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6332,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "32133:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 6338,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "32133:38:19",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6339,
                  "nodeType": "ExpressionStatement",
                  "src": "32133:38:19"
                },
                {
                  "body": {
                    "id": 6362,
                    "nodeType": "Block",
                    "src": "32219:48:19",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6353,
                                    "name": "_dealid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6323,
                                    "src": "32241:7:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                      "typeString": "bytes32[] calldata"
                                    }
                                  },
                                  "id": 6355,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6354,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6341,
                                    "src": "32249:1:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "32241:10:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 6356,
                                    "name": "_idx",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6326,
                                    "src": "32253:4:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                      "typeString": "uint256[] calldata"
                                    }
                                  },
                                  "id": 6358,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 6357,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6341,
                                    "src": "32258:1:19",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "32253:7:19",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 6352,
                                "name": "initialize",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4717,
                                "src": "32230:10:19",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$",
                                  "typeString": "function (bytes32,uint256) returns (bytes32)"
                                }
                              },
                              "id": 6359,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "32230:31:19",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 6351,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5463,
                            "src": "32224:5:19",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 6360,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "32224:38:19",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6361,
                        "nodeType": "ExpressionStatement",
                        "src": "32224:38:19"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6347,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6344,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6341,
                      "src": "32192:1:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6345,
                        "name": "_dealid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6323,
                        "src": "32196:7:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 6346,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "32196:14:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "32192:18:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6363,
                  "initializationExpression": {
                    "assignments": [
                      6341
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6341,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 6363,
                        "src": "32180:6:19",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6340,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "32180:4:19",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 6343,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 6342,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "32189:1:19",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "32180:10:19"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 6349,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "32212:3:19",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 6348,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6341,
                        "src": "32214:1:19",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6350,
                    "nodeType": "ExpressionStatement",
                    "src": "32212:3:19"
                  },
                  "nodeType": "ForStatement",
                  "src": "32175:92:19"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 6364,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "32277:4:19",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 6331,
                  "id": 6365,
                  "nodeType": "Return",
                  "src": "32270:11:19"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "f722cb32",
            "id": 6367,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initializeAndClaimArray",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6328,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "32104:8:19"
            },
            "parameters": {
              "id": 6327,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6323,
                  "mutability": "mutable",
                  "name": "_dealid",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6367,
                  "src": "32039:26:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6321,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "32039:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 6322,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "32039:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6326,
                  "mutability": "mutable",
                  "name": "_idx",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6367,
                  "src": "32069:23:19",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6324,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "32069:7:19",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6325,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "32069:9:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32035:58:19"
            },
            "returnParameters": {
              "id": 6331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6330,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 6367,
                  "src": "32122:4:19",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6329,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "32122:4:19",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "32121:6:19"
            },
            "scope": 6368,
            "src": "32003:282:19",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 6369,
        "src": "585:31702:19"
      }
    ],
    "src": "0:32288:19"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.6+commit.6c089d02.Emscripten.clang"
  },
  "networks": {
    "1": {
      "events": {
        "0x9703f4589802246c80b822e63697180da799e363cd1b6fd9465a5e5574d53492": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "AccurateContribution",
          "type": "event"
        },
        "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "spender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "name": "Approval",
          "type": "event"
        },
        "0xf868788948d55240774fdbad06555105ef20bbc70d1b7eccda982b65e11e79bb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "FaultyContribution",
          "type": "event"
        },
        "0x625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Lock",
          "type": "event"
        },
        "0xd811b592ed0899225773e8933d8df64bd0b62761a9d7aad4ed5b22735f4610a4": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "dealid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "appHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "datasetHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "workerpoolHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "requestHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            }
          ],
          "name": "OrdersMatched",
          "type": "event"
        },
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event"
        },
        "0xc2aca55aa696938c7e95842e8939ca0fbb2120a3eeb8948cdcee2b70da566672": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "ref",
              "type": "bytes32"
            }
          ],
          "name": "Reward",
          "type": "event"
        },
        "0x692ad61076dceddd0f1a861f737553dd61fc8501cf4190d29c4e90af6607f765": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "dealid",
              "type": "bytes32"
            }
          ],
          "name": "SchedulerNotice",
          "type": "event"
        },
        "0x1bccc549c38561cd5b57f0db11ceb8dde1b0b6ee05ab5e155b51c7c5ba64becb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "ref",
              "type": "bytes32"
            }
          ],
          "name": "Seize",
          "type": "event"
        },
        "0xcbc308b5f91040d2659a5201858344b0b583cd2f9e18e8470c2fa052c5b21ff8": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "TaskClaimed",
          "type": "event"
        },
        "0xf6d49bf3e05d33a4bc497d3c793fb5756388bb96b947cf51bb60aaecb0e022e3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "consensus",
              "type": "bytes32"
            }
          ],
          "name": "TaskConsensus",
          "type": "event"
        },
        "0x3fdb8d7797562d49a81078dbf7fa1771958ea452f8b13d1148383bd9506aecfb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "hash",
              "type": "bytes32"
            }
          ],
          "name": "TaskContribute",
          "type": "event"
        },
        "0x78ce8a8bc0fcb704e8ba3b3dbb36aa88002df8038128b4af2f27ef65db665044": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes",
              "name": "results",
              "type": "bytes"
            }
          ],
          "name": "TaskFinalize",
          "type": "event"
        },
        "0x252992fb0468d68d6a5784ec03214f0d0a362083f2d7ebd157af43b017a22e06": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            }
          ],
          "name": "TaskInitialize",
          "type": "event"
        },
        "0x3afe0f24796ce653c6ab1f3e7aba5ce564eece5e82aee724aff28253e829f07b": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "TaskReopen",
          "type": "event"
        },
        "0x4b1763d473ac8fa80b4432ba90047e1b92444d8fabc55e6a002d9b1a316d7959": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "digest",
              "type": "bytes32"
            }
          ],
          "name": "TaskReveal",
          "type": "event"
        },
        "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "name": "Transfer",
          "type": "event"
        },
        "0x6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Unlock",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x4237d65B3Db031bC2E605fB45A3b4A83a378a378"
    },
    "3": {
      "events": {
        "0x9703f4589802246c80b822e63697180da799e363cd1b6fd9465a5e5574d53492": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "AccurateContribution",
          "type": "event"
        },
        "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "spender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "name": "Approval",
          "type": "event"
        },
        "0xf868788948d55240774fdbad06555105ef20bbc70d1b7eccda982b65e11e79bb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "FaultyContribution",
          "type": "event"
        },
        "0x625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Lock",
          "type": "event"
        },
        "0xd811b592ed0899225773e8933d8df64bd0b62761a9d7aad4ed5b22735f4610a4": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "dealid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "appHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "datasetHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "workerpoolHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "requestHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            }
          ],
          "name": "OrdersMatched",
          "type": "event"
        },
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event"
        },
        "0xc2aca55aa696938c7e95842e8939ca0fbb2120a3eeb8948cdcee2b70da566672": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "ref",
              "type": "bytes32"
            }
          ],
          "name": "Reward",
          "type": "event"
        },
        "0x692ad61076dceddd0f1a861f737553dd61fc8501cf4190d29c4e90af6607f765": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "dealid",
              "type": "bytes32"
            }
          ],
          "name": "SchedulerNotice",
          "type": "event"
        },
        "0x1bccc549c38561cd5b57f0db11ceb8dde1b0b6ee05ab5e155b51c7c5ba64becb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "ref",
              "type": "bytes32"
            }
          ],
          "name": "Seize",
          "type": "event"
        },
        "0xcbc308b5f91040d2659a5201858344b0b583cd2f9e18e8470c2fa052c5b21ff8": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "TaskClaimed",
          "type": "event"
        },
        "0xf6d49bf3e05d33a4bc497d3c793fb5756388bb96b947cf51bb60aaecb0e022e3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "consensus",
              "type": "bytes32"
            }
          ],
          "name": "TaskConsensus",
          "type": "event"
        },
        "0x3fdb8d7797562d49a81078dbf7fa1771958ea452f8b13d1148383bd9506aecfb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "hash",
              "type": "bytes32"
            }
          ],
          "name": "TaskContribute",
          "type": "event"
        },
        "0x78ce8a8bc0fcb704e8ba3b3dbb36aa88002df8038128b4af2f27ef65db665044": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes",
              "name": "results",
              "type": "bytes"
            }
          ],
          "name": "TaskFinalize",
          "type": "event"
        },
        "0x252992fb0468d68d6a5784ec03214f0d0a362083f2d7ebd157af43b017a22e06": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            }
          ],
          "name": "TaskInitialize",
          "type": "event"
        },
        "0x3afe0f24796ce653c6ab1f3e7aba5ce564eece5e82aee724aff28253e829f07b": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "TaskReopen",
          "type": "event"
        },
        "0x4b1763d473ac8fa80b4432ba90047e1b92444d8fabc55e6a002d9b1a316d7959": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "digest",
              "type": "bytes32"
            }
          ],
          "name": "TaskReveal",
          "type": "event"
        },
        "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "name": "Transfer",
          "type": "event"
        },
        "0x6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Unlock",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x4237d65B3Db031bC2E605fB45A3b4A83a378a378"
    },
    "4": {
      "events": {
        "0x9703f4589802246c80b822e63697180da799e363cd1b6fd9465a5e5574d53492": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "AccurateContribution",
          "type": "event"
        },
        "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "spender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "name": "Approval",
          "type": "event"
        },
        "0xf868788948d55240774fdbad06555105ef20bbc70d1b7eccda982b65e11e79bb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "FaultyContribution",
          "type": "event"
        },
        "0x625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Lock",
          "type": "event"
        },
        "0xd811b592ed0899225773e8933d8df64bd0b62761a9d7aad4ed5b22735f4610a4": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "dealid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "appHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "datasetHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "workerpoolHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "requestHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            }
          ],
          "name": "OrdersMatched",
          "type": "event"
        },
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event"
        },
        "0xc2aca55aa696938c7e95842e8939ca0fbb2120a3eeb8948cdcee2b70da566672": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "ref",
              "type": "bytes32"
            }
          ],
          "name": "Reward",
          "type": "event"
        },
        "0x692ad61076dceddd0f1a861f737553dd61fc8501cf4190d29c4e90af6607f765": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "dealid",
              "type": "bytes32"
            }
          ],
          "name": "SchedulerNotice",
          "type": "event"
        },
        "0x1bccc549c38561cd5b57f0db11ceb8dde1b0b6ee05ab5e155b51c7c5ba64becb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "ref",
              "type": "bytes32"
            }
          ],
          "name": "Seize",
          "type": "event"
        },
        "0xcbc308b5f91040d2659a5201858344b0b583cd2f9e18e8470c2fa052c5b21ff8": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "TaskClaimed",
          "type": "event"
        },
        "0xf6d49bf3e05d33a4bc497d3c793fb5756388bb96b947cf51bb60aaecb0e022e3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "consensus",
              "type": "bytes32"
            }
          ],
          "name": "TaskConsensus",
          "type": "event"
        },
        "0x3fdb8d7797562d49a81078dbf7fa1771958ea452f8b13d1148383bd9506aecfb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "hash",
              "type": "bytes32"
            }
          ],
          "name": "TaskContribute",
          "type": "event"
        },
        "0x78ce8a8bc0fcb704e8ba3b3dbb36aa88002df8038128b4af2f27ef65db665044": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes",
              "name": "results",
              "type": "bytes"
            }
          ],
          "name": "TaskFinalize",
          "type": "event"
        },
        "0x252992fb0468d68d6a5784ec03214f0d0a362083f2d7ebd157af43b017a22e06": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            }
          ],
          "name": "TaskInitialize",
          "type": "event"
        },
        "0x3afe0f24796ce653c6ab1f3e7aba5ce564eece5e82aee724aff28253e829f07b": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "TaskReopen",
          "type": "event"
        },
        "0x4b1763d473ac8fa80b4432ba90047e1b92444d8fabc55e6a002d9b1a316d7959": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "digest",
              "type": "bytes32"
            }
          ],
          "name": "TaskReveal",
          "type": "event"
        },
        "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "name": "Transfer",
          "type": "event"
        },
        "0x6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Unlock",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x4237d65B3Db031bC2E605fB45A3b4A83a378a378"
    },
    "5": {
      "events": {
        "0x9703f4589802246c80b822e63697180da799e363cd1b6fd9465a5e5574d53492": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "AccurateContribution",
          "type": "event"
        },
        "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "spender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "name": "Approval",
          "type": "event"
        },
        "0xf868788948d55240774fdbad06555105ef20bbc70d1b7eccda982b65e11e79bb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "FaultyContribution",
          "type": "event"
        },
        "0x625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Lock",
          "type": "event"
        },
        "0xd811b592ed0899225773e8933d8df64bd0b62761a9d7aad4ed5b22735f4610a4": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "dealid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "appHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "datasetHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "workerpoolHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "requestHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            }
          ],
          "name": "OrdersMatched",
          "type": "event"
        },
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event"
        },
        "0xc2aca55aa696938c7e95842e8939ca0fbb2120a3eeb8948cdcee2b70da566672": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "ref",
              "type": "bytes32"
            }
          ],
          "name": "Reward",
          "type": "event"
        },
        "0x692ad61076dceddd0f1a861f737553dd61fc8501cf4190d29c4e90af6607f765": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "dealid",
              "type": "bytes32"
            }
          ],
          "name": "SchedulerNotice",
          "type": "event"
        },
        "0x1bccc549c38561cd5b57f0db11ceb8dde1b0b6ee05ab5e155b51c7c5ba64becb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "ref",
              "type": "bytes32"
            }
          ],
          "name": "Seize",
          "type": "event"
        },
        "0xcbc308b5f91040d2659a5201858344b0b583cd2f9e18e8470c2fa052c5b21ff8": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "TaskClaimed",
          "type": "event"
        },
        "0xf6d49bf3e05d33a4bc497d3c793fb5756388bb96b947cf51bb60aaecb0e022e3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "consensus",
              "type": "bytes32"
            }
          ],
          "name": "TaskConsensus",
          "type": "event"
        },
        "0x3fdb8d7797562d49a81078dbf7fa1771958ea452f8b13d1148383bd9506aecfb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "hash",
              "type": "bytes32"
            }
          ],
          "name": "TaskContribute",
          "type": "event"
        },
        "0x78ce8a8bc0fcb704e8ba3b3dbb36aa88002df8038128b4af2f27ef65db665044": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes",
              "name": "results",
              "type": "bytes"
            }
          ],
          "name": "TaskFinalize",
          "type": "event"
        },
        "0x252992fb0468d68d6a5784ec03214f0d0a362083f2d7ebd157af43b017a22e06": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            }
          ],
          "name": "TaskInitialize",
          "type": "event"
        },
        "0x3afe0f24796ce653c6ab1f3e7aba5ce564eece5e82aee724aff28253e829f07b": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "TaskReopen",
          "type": "event"
        },
        "0x4b1763d473ac8fa80b4432ba90047e1b92444d8fabc55e6a002d9b1a316d7959": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "digest",
              "type": "bytes32"
            }
          ],
          "name": "TaskReveal",
          "type": "event"
        },
        "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "name": "Transfer",
          "type": "event"
        },
        "0x6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Unlock",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x4237d65B3Db031bC2E605fB45A3b4A83a378a378"
    },
    "42": {
      "events": {
        "0x9703f4589802246c80b822e63697180da799e363cd1b6fd9465a5e5574d53492": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "AccurateContribution",
          "type": "event"
        },
        "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "spender",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "name": "Approval",
          "type": "event"
        },
        "0xf868788948d55240774fdbad06555105ef20bbc70d1b7eccda982b65e11e79bb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "FaultyContribution",
          "type": "event"
        },
        "0x625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d427": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Lock",
          "type": "event"
        },
        "0xd811b592ed0899225773e8933d8df64bd0b62761a9d7aad4ed5b22735f4610a4": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "dealid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "appHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "datasetHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "workerpoolHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "requestHash",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "volume",
              "type": "uint256"
            }
          ],
          "name": "OrdersMatched",
          "type": "event"
        },
        "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "previousOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "newOwner",
              "type": "address"
            }
          ],
          "name": "OwnershipTransferred",
          "type": "event"
        },
        "0xc2aca55aa696938c7e95842e8939ca0fbb2120a3eeb8948cdcee2b70da566672": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "ref",
              "type": "bytes32"
            }
          ],
          "name": "Reward",
          "type": "event"
        },
        "0x692ad61076dceddd0f1a861f737553dd61fc8501cf4190d29c4e90af6607f765": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "dealid",
              "type": "bytes32"
            }
          ],
          "name": "SchedulerNotice",
          "type": "event"
        },
        "0x1bccc549c38561cd5b57f0db11ceb8dde1b0b6ee05ab5e155b51c7c5ba64becb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "ref",
              "type": "bytes32"
            }
          ],
          "name": "Seize",
          "type": "event"
        },
        "0xcbc308b5f91040d2659a5201858344b0b583cd2f9e18e8470c2fa052c5b21ff8": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "TaskClaimed",
          "type": "event"
        },
        "0xf6d49bf3e05d33a4bc497d3c793fb5756388bb96b947cf51bb60aaecb0e022e3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "consensus",
              "type": "bytes32"
            }
          ],
          "name": "TaskConsensus",
          "type": "event"
        },
        "0x3fdb8d7797562d49a81078dbf7fa1771958ea452f8b13d1148383bd9506aecfb": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "hash",
              "type": "bytes32"
            }
          ],
          "name": "TaskContribute",
          "type": "event"
        },
        "0x78ce8a8bc0fcb704e8ba3b3dbb36aa88002df8038128b4af2f27ef65db665044": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": false,
              "internalType": "bytes",
              "name": "results",
              "type": "bytes"
            }
          ],
          "name": "TaskFinalize",
          "type": "event"
        },
        "0x252992fb0468d68d6a5784ec03214f0d0a362083f2d7ebd157af43b017a22e06": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "workerpool",
              "type": "address"
            }
          ],
          "name": "TaskInitialize",
          "type": "event"
        },
        "0x3afe0f24796ce653c6ab1f3e7aba5ce564eece5e82aee724aff28253e829f07b": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            }
          ],
          "name": "TaskReopen",
          "type": "event"
        },
        "0x4b1763d473ac8fa80b4432ba90047e1b92444d8fabc55e6a002d9b1a316d7959": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "bytes32",
              "name": "taskid",
              "type": "bytes32"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "worker",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "bytes32",
              "name": "digest",
              "type": "bytes32"
            }
          ],
          "name": "TaskReveal",
          "type": "event"
        },
        "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "from",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "to",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "value",
              "type": "uint256"
            }
          ],
          "name": "Transfer",
          "type": "event"
        },
        "0x6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": false,
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "indexed": false,
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            }
          ],
          "name": "Unlock",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x4237d65B3Db031bC2E605fB45A3b4A83a378a378"
    }
  },
  "schemaVersion": "3.1.0",
  "updatedAt": "2020-04-21T19:16:56.273Z",
  "networkType": "ethereum",
  "devdoc": {
    "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."
      }
    }
  },
  "userdoc": {
    "methods": {
      "initialize(bytes32,uint256)": {
        "notice": "*************************************************************************                           Consensus methods                            ***************************************************************************"
      },
      "initializeArray(bytes32[],uint256[])": {
        "notice": "*************************************************************************                           Array operations                             ***************************************************************************"
      },
      "matchOrders((address,uint256,uint256,bytes32,address,address,address,bytes32,bytes),(address,uint256,uint256,bytes32,address,address,address,bytes32,bytes),(address,uint256,uint256,bytes32,uint256,uint256,address,address,address,bytes32,bytes),(address,uint256,address,uint256,address,uint256,address,uint256,bytes32,uint256,uint256,address,address,string,bytes32,bytes))": {
        "notice": "*************************************************************************                          ODB order matching                            ***************************************************************************"
      },
      "verifySignature(address,bytes32,bytes)": {
        "notice": "*************************************************************************                          ODB order signature                           ***************************************************************************"
      }
    }
  }
}