{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IOracle",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "BondedResponseModule_AlreadyResponded",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondedResponseModule_InvalidRequest",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondedResponseModule_TooEarlyToFinalize",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondedResponseModule_TooLateToDelete",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondedResponseModule_TooLateToPropose",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Module_OnlyOracle",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "_responseData",
          "type": "bytes"
        }
      ],
      "name": "ProposeResponse",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "RequestFinalized",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ORACLE",
      "outputs": [
        {
          "internalType": "contract IOracle",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "decodeRequestData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "contract IAccountingExtension",
              "name": "accountingExtension",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "bondToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "bondSize",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "disputeWindow",
              "type": "uint256"
            }
          ],
          "internalType": "struct IBondedResponseModule.RequestParameters",
          "name": "_params",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        }
      ],
      "name": "deleteResponse",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "finalizeRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "moduleName",
      "outputs": [
        {
          "internalType": "string",
          "name": "_moduleName",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "oracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_responseData",
          "type": "bytes"
        },
        {
          "internalType": "address",
          "name": "_sender",
          "type": "address"
        }
      ],
      "name": "propose",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "response",
              "type": "bytes"
            }
          ],
          "internalType": "struct IOracle.Response",
          "name": "_response",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "requestData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "_requestData",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "setupRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x60a060405234801561001057600080fd5b506040516118a83803806118a883398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516117d86100d06000396000818160fe015281816101c90152818161025e015281816102f7015281816103ab015281816104920152818161082d015281816109be01528181610a9101528181610b390152610c5401526117d86000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80634d610a46116100765780637dc0d1d01161005b5780637dc0d1d0146101c757806393f0899a146101ed578063ec229abb1461022657600080fd5b80634d610a46146101455780636ab49fb7146101b457600080fd5b80632e76be2a146100a8578063309de607146100bd5780633661346b146100d057806338013f02146100f9575b600080fd5b6100bb6100b6366004610f30565b610246565b005b6100bb6100cb366004610fa1565b6102df565b6100e36100de366004610fd1565b61066d565b6040516100f0919061103a565b60405180910390f35b6101207f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f0565b610158610153366004610fd1565b610707565b6040516100f09190600060a08201905073ffffffffffffffffffffffffffffffffffffffff8084511683528060208501511660208401525060408301516040830152606083015160608301526080830151608083015292915050565b6100bb6101c2366004611054565b610815565b7f0000000000000000000000000000000000000000000000000000000000000000610120565b60408051808201909152601481527f426f6e646564526573706f6e73654d6f64756c6500000000000000000000000060208201526100e3565b61023961023436600461108d565b610979565b6040516100f09190611101565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102b5576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526020819052604090206102ce828483611232565b506102da838383610e94565b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461034e576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061035983610707565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff84811660248301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063c4a41c4f90604401602060405180830381865afa1580156103f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610416919061132f565b9050801580156104295750816060015142105b15610460576040517f0b35ce0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f163ed02f000000000000000000000000000000000000000000000000000000008152600481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063163ed02f90602401600060405180830381865afa1580156104ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051691908101906113ab565b80519091501561061b578115801561053d57506080830151815161053a91906114ce565b42105b15610574576040517f0b35ce0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82516020828101519085015160408087015190517fa6d09dc800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018a90529183166044830152606482015291169063a6d09dc890608401600060405180830381600087803b15801561060257600080fd5b505af1158015610616573d6000803e3d6000fd5b505050505b60405173ffffffffffffffffffffffffffffffffffffffff8516815285907f898b6025fbfa120421d24d3735eb8c51885040c2ba00c10ffe007e3356f058ff9060200160405180910390a25050505050565b6000602081905290815260409020805461068690611191565b80601f01602080910402602001604051908101604052809291908181526020018280546106b290611191565b80156106ff5780601f106106d4576101008083540402835291602001916106ff565b820191906000526020600020905b8154815290600101906020018083116106e257829003601f168201915b505050505081565b6107656040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081525090565b6000828152602081905260409020805461077e90611191565b80601f01602080910402602001604051908101604052809291908181526020018280546107aa90611191565b80156107f75780601f106107cc576101008083540402835291602001916107f7565b820191906000526020600020905b8154815290600101906020018083116107da57829003601f168201915b505050505080602001905181019061080f91906114e1565b92915050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610884576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061088f84610707565b905080606001514211156108cf576040517f632e6e6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051602082015160408084015190517fa6d09dc800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018990529283166044820152606481019190915291169063a6d09dc890608401600060405180830381600087803b15801561095b57600080fd5b505af115801561096f573d6000803e3d6000fd5b5050505050505050565b6040805160a08101825260008082526020820181905291810182905260608082019290925260808101919091523373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a15576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610a2087610707565b905080606001514210610a5f576040517f17e565d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f5b425b09000000000000000000000000000000000000000000000000000000008152600481018890526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635b425b0990602401600060405180830381865afa158015610aed573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b159190810190611545565b80519091508015610d2857600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663415a2bc184610b6a6001866115eb565b81518110610b7a57610b7a6115fe565b60200260200101516040518263ffffffff1660e01b8152600401610ba091815260200190565b600060405180830381865afa158015610bbd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610be591908101906113ab565b60600151905080610c22576040517f50b6043800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f136ba6aa000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063136ba6aa9060240160c060405180830381865afa158015610cb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd4919061162d565b905060048160a001516005811115610cee57610cee6116c3565b03610d25576040517f50b6043800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b6040518060a001604052804281526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018a81526020016000801b815260200188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525083516020828101519086015160408088015190517f4aa90d1600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018f90529183166044830152606482015288821660848201529296501690634aa90d169060a401600060405180830381600087803b158015610e3457600080fd5b505af1158015610e48573d6000803e3d6000fd5b50505050887f2d91e4f59fb1b13bb8fb80cc248d33fd86c25d32236e6b2a5b684412d16cdc7c898989604051610e80939291906116f2565b60405180910390a250505095945050505050565b6000610ea28284018461173e565b905042816060015111610ee1576040517fe6b86b6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60008083601f840112610ef957600080fd5b50813567ffffffffffffffff811115610f1157600080fd5b602083019150836020828501011115610f2957600080fd5b9250929050565b600080600060408486031215610f4557600080fd5b83359250602084013567ffffffffffffffff811115610f6357600080fd5b610f6f86828701610ee7565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610f9e57600080fd5b50565b60008060408385031215610fb457600080fd5b823591506020830135610fc681610f7c565b809150509250929050565b600060208284031215610fe357600080fd5b5035919050565b60005b83811015611005578181015183820152602001610fed565b50506000910152565b60008151808452611026816020860160208601610fea565b601f01601f19169290920160200192915050565b60208152600061104d602083018461100e565b9392505050565b60008060006060848603121561106957600080fd5b8335925060208401359150604084013561108281610f7c565b809150509250925092565b6000806000806000608086880312156110a557600080fd5b8535945060208601356110b781610f7c565b9350604086013567ffffffffffffffff8111156110d357600080fd5b6110df88828901610ee7565b90945092505060608601356110f381610f7c565b809150509295509295909350565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff602083015116604082015260408201516060820152606082015160808201526000608083015160a08084015261115a60c084018261100e565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806111a557607f821691505b6020821081036111de577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156102da57600081815260208120601f850160051c8101602086101561120b5750805b601f850160051c820191505b8181101561122a57828155600101611217565b505050505050565b67ffffffffffffffff83111561124a5761124a611162565b61125e836112588354611191565b836111e4565b6000601f8411600181146112b0576000851561127a5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611328565b600083815260209020601f19861690835b828110156112e157868501358255602094850194600190920191016112c1565b508682101561131c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60006020828403121561134157600080fd5b8151801515811461104d57600080fd5b60405160a0810167ffffffffffffffff8111828210171561137457611374611162565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113a3576113a3611162565b604052919050565b600060208083850312156113be57600080fd5b825167ffffffffffffffff808211156113d657600080fd5b9084019060a082870312156113ea57600080fd5b6113f2611351565b825181528383015161140381610f7c565b808583015250604083015160408201526060830151606082015260808301518281111561142f57600080fd5b80840193505086601f84011261144457600080fd5b82518281111561145657611456611162565b61146885601f19601f8401160161137a565b9250808352878582860101111561147e57600080fd5b61148d81868501878701610fea565b50608081019190915295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561080f5761080f61149f565b600060a082840312156114f357600080fd5b6114fb611351565b825161150681610f7c565b8152602083015161151681610f7c565b806020830152506040830151604082015260608301516060820152608083015160808201528091505092915050565b6000602080838503121561155857600080fd5b825167ffffffffffffffff8082111561157057600080fd5b818501915085601f83011261158457600080fd5b81518181111561159657611596611162565b8060051b91506115a784830161137a565b81815291830184019184810190888411156115c157600080fd5b938501935b838510156115df578451825293850193908501906115c6565b98975050505050505050565b8181038181111561080f5761080f61149f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060c0828403121561163f57600080fd5b60405160c0810181811067ffffffffffffffff8211171561166257611662611162565b60405282518152602083015161167781610f7c565b6020820152604083015161168a81610f7c565b80604083015250606083015160608201526080830151608082015260a0830151600681106116b757600080fd5b60a08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600060a0828403121561175057600080fd5b611758611351565b823561176381610f7c565b8152602083013561177381610f7c565b80602083015250604083013560408201526060830135606082015260808301356080820152809150509291505056fea2646970667358221220d51fb0b028007dd8db85919f81e2c349fce9d760a5be57f22c5bab6ad9c1bbf964736f6c63430008130033",
    "sourceMap": "407:4022:55:-:0;;;474:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;353:16:0;;;407:4022:55;;14:306:113;100:6;153:2;141:9;132:7;128:23;124:32;121:52;;;169:1;166;159:12;121:52;195:16;;-1:-1:-1;;;;;240:31:113;;230:42;;220:70;;286:1;283;276:12;220:70;309:5;14:306;-1:-1:-1;;;14:306:113:o;:::-;407:4022:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80634d610a46116100765780637dc0d1d01161005b5780637dc0d1d0146101c757806393f0899a146101ed578063ec229abb1461022657600080fd5b80634d610a46146101455780636ab49fb7146101b457600080fd5b80632e76be2a146100a8578063309de607146100bd5780633661346b146100d057806338013f02146100f9575b600080fd5b6100bb6100b6366004610f30565b610246565b005b6100bb6100cb366004610fa1565b6102df565b6100e36100de366004610fd1565b61066d565b6040516100f0919061103a565b60405180910390f35b6101207f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f0565b610158610153366004610fd1565b610707565b6040516100f09190600060a08201905073ffffffffffffffffffffffffffffffffffffffff8084511683528060208501511660208401525060408301516040830152606083015160608301526080830151608083015292915050565b6100bb6101c2366004611054565b610815565b7f0000000000000000000000000000000000000000000000000000000000000000610120565b60408051808201909152601481527f426f6e646564526573706f6e73654d6f64756c6500000000000000000000000060208201526100e3565b61023961023436600461108d565b610979565b6040516100f09190611101565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102b5576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008381526020819052604090206102ce828483611232565b506102da838383610e94565b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461034e576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061035983610707565b6040517fc4a41c4f0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff84811660248301529192506000917f0000000000000000000000000000000000000000000000000000000000000000169063c4a41c4f90604401602060405180830381865afa1580156103f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610416919061132f565b9050801580156104295750816060015142105b15610460576040517f0b35ce0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f163ed02f000000000000000000000000000000000000000000000000000000008152600481018590526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063163ed02f90602401600060405180830381865afa1580156104ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051691908101906113ab565b80519091501561061b578115801561053d57506080830151815161053a91906114ce565b42105b15610574576040517f0b35ce0600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82516020828101519085015160408087015190517fa6d09dc800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018a90529183166044830152606482015291169063a6d09dc890608401600060405180830381600087803b15801561060257600080fd5b505af1158015610616573d6000803e3d6000fd5b505050505b60405173ffffffffffffffffffffffffffffffffffffffff8516815285907f898b6025fbfa120421d24d3735eb8c51885040c2ba00c10ffe007e3356f058ff9060200160405180910390a25050505050565b6000602081905290815260409020805461068690611191565b80601f01602080910402602001604051908101604052809291908181526020018280546106b290611191565b80156106ff5780601f106106d4576101008083540402835291602001916106ff565b820191906000526020600020905b8154815290600101906020018083116106e257829003601f168201915b505050505081565b6107656040518060a00160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600081525090565b6000828152602081905260409020805461077e90611191565b80601f01602080910402602001604051908101604052809291908181526020018280546107aa90611191565b80156107f75780601f106107cc576101008083540402835291602001916107f7565b820191906000526020600020905b8154815290600101906020018083116107da57829003601f168201915b505050505080602001905181019061080f91906114e1565b92915050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610884576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061088f84610707565b905080606001514211156108cf576040517f632e6e6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8051602082015160408084015190517fa6d09dc800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152602482018990529283166044820152606481019190915291169063a6d09dc890608401600060405180830381600087803b15801561095b57600080fd5b505af115801561096f573d6000803e3d6000fd5b5050505050505050565b6040805160a08101825260008082526020820181905291810182905260608082019290925260808101919091523373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a15576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610a2087610707565b905080606001514210610a5f576040517f17e565d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f5b425b09000000000000000000000000000000000000000000000000000000008152600481018890526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635b425b0990602401600060405180830381865afa158015610aed573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b159190810190611545565b80519091508015610d2857600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663415a2bc184610b6a6001866115eb565b81518110610b7a57610b7a6115fe565b60200260200101516040518263ffffffff1660e01b8152600401610ba091815260200190565b600060405180830381865afa158015610bbd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610be591908101906113ab565b60600151905080610c22576040517f50b6043800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f136ba6aa000000000000000000000000000000000000000000000000000000008152600481018290526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063136ba6aa9060240160c060405180830381865afa158015610cb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd4919061162d565b905060048160a001516005811115610cee57610cee6116c3565b03610d25576040517f50b6043800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505b6040518060a001604052804281526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018a81526020016000801b815260200188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505091525083516020828101519086015160408088015190517f4aa90d1600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018f90529183166044830152606482015288821660848201529296501690634aa90d169060a401600060405180830381600087803b158015610e3457600080fd5b505af1158015610e48573d6000803e3d6000fd5b50505050887f2d91e4f59fb1b13bb8fb80cc248d33fd86c25d32236e6b2a5b684412d16cdc7c898989604051610e80939291906116f2565b60405180910390a250505095945050505050565b6000610ea28284018461173e565b905042816060015111610ee1576040517fe6b86b6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60008083601f840112610ef957600080fd5b50813567ffffffffffffffff811115610f1157600080fd5b602083019150836020828501011115610f2957600080fd5b9250929050565b600080600060408486031215610f4557600080fd5b83359250602084013567ffffffffffffffff811115610f6357600080fd5b610f6f86828701610ee7565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610f9e57600080fd5b50565b60008060408385031215610fb457600080fd5b823591506020830135610fc681610f7c565b809150509250929050565b600060208284031215610fe357600080fd5b5035919050565b60005b83811015611005578181015183820152602001610fed565b50506000910152565b60008151808452611026816020860160208601610fea565b601f01601f19169290920160200192915050565b60208152600061104d602083018461100e565b9392505050565b60008060006060848603121561106957600080fd5b8335925060208401359150604084013561108281610f7c565b809150509250925092565b6000806000806000608086880312156110a557600080fd5b8535945060208601356110b781610f7c565b9350604086013567ffffffffffffffff8111156110d357600080fd5b6110df88828901610ee7565b90945092505060608601356110f381610f7c565b809150509295509295909350565b602081528151602082015273ffffffffffffffffffffffffffffffffffffffff602083015116604082015260408201516060820152606082015160808201526000608083015160a08084015261115a60c084018261100e565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c908216806111a557607f821691505b6020821081036111de577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f8211156102da57600081815260208120601f850160051c8101602086101561120b5750805b601f850160051c820191505b8181101561122a57828155600101611217565b505050505050565b67ffffffffffffffff83111561124a5761124a611162565b61125e836112588354611191565b836111e4565b6000601f8411600181146112b0576000851561127a5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611328565b600083815260209020601f19861690835b828110156112e157868501358255602094850194600190920191016112c1565b508682101561131c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60006020828403121561134157600080fd5b8151801515811461104d57600080fd5b60405160a0810167ffffffffffffffff8111828210171561137457611374611162565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156113a3576113a3611162565b604052919050565b600060208083850312156113be57600080fd5b825167ffffffffffffffff808211156113d657600080fd5b9084019060a082870312156113ea57600080fd5b6113f2611351565b825181528383015161140381610f7c565b808583015250604083015160408201526060830151606082015260808301518281111561142f57600080fd5b80840193505086601f84011261144457600080fd5b82518281111561145657611456611162565b61146885601f19601f8401160161137a565b9250808352878582860101111561147e57600080fd5b61148d81868501878701610fea565b50608081019190915295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561080f5761080f61149f565b600060a082840312156114f357600080fd5b6114fb611351565b825161150681610f7c565b8152602083015161151681610f7c565b806020830152506040830151604082015260608301516060820152608083015160808201528091505092915050565b6000602080838503121561155857600080fd5b825167ffffffffffffffff8082111561157057600080fd5b818501915085601f83011261158457600080fd5b81518181111561159657611596611162565b8060051b91506115a784830161137a565b81815291830184019184810190888411156115c157600080fd5b938501935b838510156115df578451825293850193908501906115c6565b98975050505050505050565b8181038181111561080f5761080f61149f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060c0828403121561163f57600080fd5b60405160c0810181811067ffffffffffffffff8211171561166257611662611162565b60405282518152602083015161167781610f7c565b6020820152604083015161168a81610f7c565b80604083015250606083015160608201526080830151608082015260a0830151600681106116b757600080fd5b60a08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b600060a0828403121561175057600080fd5b611758611351565b823561176381610f7c565b8152602083013561177381610f7c565b80602083015250604083013560408201526060830135606082015260808301356080820152809150509291505056fea2646970667358221220d51fb0b028007dd8db85919f81e2c349fce9d760a5be57f22c5bab6ad9c1bbf964736f6c63430008130033",
    "sourceMap": "407:4022:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;695:175:0;;;;;;:::i;:::-;;:::i;:::-;;3201:926:55;;;;;;:::i;:::-;;:::i;237:68:0:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;201:31;;;;;;;;2515:42:113;2503:55;;;2485:74;;2473:2;2458:18;201:31:0;2323:242:113;712:179:55;;;;;;:::i;:::-;;:::i;:::-;;;;;;2734:4:113;2776:3;2765:9;2761:19;2753:27;;2799:42;2887:2;2878:6;2872:13;2868:22;2857:9;2850:41;2959:2;2951:4;2943:6;2939:17;2933:24;2929:33;2922:4;2911:9;2907:20;2900:63;;3019:4;3011:6;3007:17;3001:24;2994:4;2983:9;2979:20;2972:54;3082:4;3074:6;3070:17;3064:24;3057:4;3046:9;3042:20;3035:54;3145:4;3137:6;3133:17;3127:24;3120:4;3109:9;3105:20;3098:54;2570:588;;;;;2726:431:55;;;;;;:::i;:::-;;:::i;571:94:0:-;653:6;571:94;;551:117:55;627:36;;;;;;;;;;;;;;;;;551:117;;935:1747;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;695:175:0:-;472:10;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;791:11:::1;:23:::0;;;::::1;::::0;;;;;;:31:::1;817:5:::0;;791:23;:31:::1;:::i;:::-;;828:37;847:10;859:5;;828:18;:37::i;:::-;695:175:::0;;;:::o;3201:926:55:-;472:10:0;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;3344:32:55::1;3379:29;3397:10;3379:17;:29::i;:::-;3432:44;::::0;;;;::::1;::::0;::::1;8436:25:113::0;;;3432:20:55::1;8497:55:113::0;;;8477:18;;;8470:83;3344:64:55;;-1:-1:-1;3415:14:55::1;::::0;3432:6:::1;:20;::::0;::::1;::::0;8409:18:113;;3432:44:55::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3415:61;;3488:9;3487:10;:48;;;;;3519:7;:16;;;3501:15;:34;3487:48;3483:117;;;3552:41;;;;;;;;;;;;;;3483:117;3642:39;::::0;;;;::::1;::::0;::::1;8992:25:113::0;;;3606:33:55::1;::::0;3642:6:::1;:27;;::::0;::::1;::::0;8965:18:113;;3642:39:55::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;3642:39:55::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;3691:19:::0;;3606:75;;-1:-1:-1;3691:24:55;3687:385:::1;;3730:9;3729:10;:75;;;;-1:-1:-1::0;3783:21:55::1;::::0;::::1;::::0;3761:19;;:43:::1;::::0;3783:21;3761:43:::1;:::i;:::-;3743:15;:61;3729:75;3725:148;;;3823:41;;;;;;;;;;;;;;3725:148;3881:27:::0;;3936:18:::1;::::0;;::::1;::::0;4004:17;;::::1;::::0;4040:16:::1;::::0;;::::1;::::0;3881:184;;;;;:35:::1;11612:15:113::0;;;3881:184:55::1;::::0;::::1;11594:34:113::0;11644:18;;;11637:34;;;11707:15;;;11687:18;;;11680:43;11739:18;;;11732:34;3881:35:55;::::1;::::0;::::1;::::0;11505:19:113;;3881:184:55::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3687:385;4082:40;::::0;2515:42:113;2503:55;;2485:74;;4099:10:55;;4082:40:::1;::::0;2473:2:113;2458:18;4082:40:55::1;;;;;;;3338:789;;;3201:926:::0;;:::o;237:68:0:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;712:179:55:-;780:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;780:32:55;841:11;:23;;;;;;;;;;830:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;820:66;712:179;-1:-1:-1;;712:179:55:o;2726:431::-;472:10:0;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;2824:32:55::1;2859:29;2877:10;2859:17;:29::i;:::-;2824:64;;2917:7;:16;;;2899:15;:34;2895:85;;;2942:38;;;;;;;;;;;;;;2895:85;2987:27:::0;;3095:17:::1;::::0;::::1;::::0;3129:16:::1;::::0;;::::1;::::0;2987:165;;;;;:35:::1;11612:15:113::0;;;2987:165:55::1;::::0;::::1;11594:34:113::0;11644:18;;;11637:34;;;11707:15;;;11687:18;;;11680:43;11739:18;;;11732:34;;;;2987:35:55;::::1;::::0;::::1;::::0;11505:19:113;;2987:165:55::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2818:339;2726:431:::0;;;:::o;935:1747::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;472:10:0;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;1128:32:55::1;1163:29;1181:10;1163:17;:29::i;:::-;1128:64;;1263:7;:16;;;1244:15;:35;1240:87;;1288:39;;;;;;;;;;;;;;1240:87;1456:33;::::0;;;;::::1;::::0;::::1;8992:25:113::0;;;1424:29:55::1;::::0;1456:6:::1;:21;;::::0;::::1;::::0;8965:18:113;;1456:33:55::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1456:33:55::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1522:19:::0;;1424:65;;-1:-1:-1;1552:21:55;;1548:670:::1;;1583:18;1604;:6;:18;;1623:12:::0;1636:20:::1;1655:1;1636:16:::0;:20:::1;:::i;:::-;1623:34;;;;;;;;:::i;:::-;;;;;;;1604:54;;;;;;;;;;;;;8992:25:113::0;;8980:2;8965:18;;8846:177;1604:54:55::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1604:54:55::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;:64;;::::0;;-1:-1:-1;1604:64:55;1729:76:::1;;1766:39;;;;;;;;;;;;;;1729:76;1847:29;::::0;;;;::::1;::::0;::::1;8992:25:113::0;;;1813:31:55::1;::::0;1847:6:::1;:17;;::::0;::::1;::::0;8965:18:113;;1847:29:55::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1813:63:::0;-1:-1:-1;2137:26:55::1;2118:8;:15;;;:45;;;;;;;;:::i;:::-;::::0;2114:97:::1;;2172:39;;;;;;;;;;;;;;2114:97;1575:643;;1548:670;2236:174;;;;;;;;2388:15;2236:174;;;;2329:9;2236:174;;;;;;2272:10;2236:174;;;;2309:1;2301:10:::0;::::1;2236:174;;;;2356:13;;2236:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;2236:174:55;;-1:-1:-1;2417:27:55;;2467:18:::1;::::0;;::::1;::::0;2531:17;;::::1;::::0;2565:16:::1;::::0;;::::1;::::0;2417:195;;;;;:32:::1;15231:15:113::0;;;2417:195:55::1;::::0;::::1;15213:34:113::0;15263:18;;;15256:34;;;15326:15;;;15306:18;;;15299:43;15358:18;;;15351:34;15422:15;;;15401:19;;;15394:44;2467:18:55;;-1:-1:-1;2417:32:55::1;::::0;::::1;::::0;15124:19:113;;2417:195:55::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2640:10;2624:53;2652:9;2663:13;;2624:53;;;;;;;;:::i;:::-;;;;;;;;1122:1560;;;935:1747:::0;;;;;;;:::o;4156:271::-;4244:32;4279:38;;;;4290:5;4279:38;:::i;:::-;4244:73;;4347:15;4327:7;:16;;;:35;4323:100;;4379:37;;;;;;;;;;;;;;4323:100;4238:189;4156:271;;;:::o;14:347:113:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:113;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;296:59;14:347;;;;;:::o;366:477::-;445:6;453;461;514:2;502:9;493:7;489:23;485:32;482:52;;;530:1;527;520:12;482:52;566:9;553:23;543:33;;627:2;616:9;612:18;599:32;654:18;646:6;643:30;640:50;;;686:1;683;676:12;640:50;725:58;775:7;766:6;755:9;751:22;725:58;:::i;:::-;366:477;;802:8;;-1:-1:-1;699:84:113;;-1:-1:-1;;;;366:477:113:o;848:154::-;934:42;927:5;923:54;916:5;913:65;903:93;;992:1;989;982:12;903:93;848:154;:::o;1007:315::-;1075:6;1083;1136:2;1124:9;1115:7;1111:23;1107:32;1104:52;;;1152:1;1149;1142:12;1104:52;1188:9;1175:23;1165:33;;1248:2;1237:9;1233:18;1220:32;1261:31;1286:5;1261:31;:::i;:::-;1311:5;1301:15;;;1007:315;;;;;:::o;1327:180::-;1386:6;1439:2;1427:9;1418:7;1414:23;1410:32;1407:52;;;1455:1;1452;1445:12;1407:52;-1:-1:-1;1478:23:113;;1327:180;-1:-1:-1;1327:180:113:o;1512:250::-;1597:1;1607:113;1621:6;1618:1;1615:13;1607:113;;;1697:11;;;1691:18;1678:11;;;1671:39;1643:2;1636:10;1607:113;;;-1:-1:-1;;1754:1:113;1736:16;;1729:27;1512:250::o;1767:329::-;1808:3;1846:5;1840:12;1873:6;1868:3;1861:19;1889:76;1958:6;1951:4;1946:3;1942:14;1935:4;1928:5;1924:16;1889:76;:::i;:::-;2010:2;1998:15;-1:-1:-1;;1994:88:113;1985:98;;;;2085:4;1981:109;;1767:329;-1:-1:-1;;1767:329:113:o;2101:217::-;2248:2;2237:9;2230:21;2211:4;2268:44;2308:2;2297:9;2293:18;2285:6;2268:44;:::i;:::-;2260:52;2101:217;-1:-1:-1;;;2101:217:113:o;3163:383::-;3240:6;3248;3256;3309:2;3297:9;3288:7;3284:23;3280:32;3277:52;;;3325:1;3322;3315:12;3277:52;3361:9;3348:23;3338:33;;3418:2;3407:9;3403:18;3390:32;3380:42;;3472:2;3461:9;3457:18;3444:32;3485:31;3510:5;3485:31;:::i;:::-;3535:5;3525:15;;;3163:383;;;;;:::o;4006:754::-;4103:6;4111;4119;4127;4135;4188:3;4176:9;4167:7;4163:23;4159:33;4156:53;;;4205:1;4202;4195:12;4156:53;4241:9;4228:23;4218:33;;4301:2;4290:9;4286:18;4273:32;4314:31;4339:5;4314:31;:::i;:::-;4364:5;-1:-1:-1;4420:2:113;4405:18;;4392:32;4447:18;4436:30;;4433:50;;;4479:1;4476;4469:12;4433:50;4518:58;4568:7;4559:6;4548:9;4544:22;4518:58;:::i;:::-;4595:8;;-1:-1:-1;4492:84:113;-1:-1:-1;;4682:2:113;4667:18;;4654:32;4695:33;4654:32;4695:33;:::i;:::-;4747:7;4737:17;;;4006:754;;;;;;;;:::o;4765:630::-;4946:2;4935:9;4928:21;4991:6;4985:13;4980:2;4969:9;4965:18;4958:41;5063:42;5057:2;5049:6;5045:15;5039:22;5035:71;5030:2;5019:9;5015:18;5008:99;5161:2;5153:6;5149:15;5143:22;5138:2;5127:9;5123:18;5116:50;5221:2;5213:6;5209:15;5203:22;5197:3;5186:9;5182:19;5175:51;4909:4;5273:3;5265:6;5261:16;5255:23;5316:4;5309;5298:9;5294:20;5287:34;5338:51;5384:3;5373:9;5369:19;5355:12;5338:51;:::i;:::-;5330:59;4765:630;-1:-1:-1;;;;4765:630:113:o;5400:184::-;5452:77;5449:1;5442:88;5549:4;5546:1;5539:15;5573:4;5570:1;5563:15;5589:437;5668:1;5664:12;;;;5711;;;5732:61;;5786:4;5778:6;5774:17;5764:27;;5732:61;5839:2;5831:6;5828:14;5808:18;5805:38;5802:218;;5876:77;5873:1;5866:88;5977:4;5974:1;5967:15;6005:4;6002:1;5995:15;5802:218;;5589:437;;;:::o;6156:544::-;6257:2;6252:3;6249:11;6246:448;;;6293:1;6318:5;6314:2;6307:17;6363:4;6359:2;6349:19;6433:2;6421:10;6417:19;6414:1;6410:27;6404:4;6400:38;6469:4;6457:10;6454:20;6451:47;;;-1:-1:-1;6492:4:113;6451:47;6547:2;6542:3;6538:12;6535:1;6531:20;6525:4;6521:31;6511:41;;6602:82;6620:2;6613:5;6610:13;6602:82;;;6665:17;;;6646:1;6635:13;6602:82;;;6606:3;;;6156:544;;;:::o;6936:1321::-;7058:18;7053:3;7050:27;7047:53;;;7080:18;;:::i;:::-;7109:93;7198:3;7158:38;7190:4;7184:11;7158:38;:::i;:::-;7152:4;7109:93;:::i;:::-;7228:1;7253:2;7248:3;7245:11;7270:1;7265:734;;;;8043:1;8060:3;8057:93;;;-1:-1:-1;8116:19:113;;;8103:33;8057:93;6842:66;6833:1;6829:11;;;6825:84;6821:89;6811:100;6917:1;6913:11;;;6808:117;8163:78;;7238:1013;;7265:734;6103:1;6096:14;;;6140:4;6127:18;;-1:-1:-1;;7301:76:113;;;7460:9;7482:229;7496:7;7493:1;7490:14;7482:229;;;7585:19;;;7572:33;7557:49;;7692:4;7677:20;;;;7645:1;7633:14;;;;7512:12;7482:229;;;7486:3;7739;7730:7;7727:16;7724:219;;;7859:66;7853:3;7847;7844:1;7840:11;7836:21;7832:94;7828:99;7815:9;7810:3;7806:19;7793:33;7789:139;7781:6;7774:155;7724:219;;;7986:1;7980:3;7977:1;7973:11;7969:19;7963:4;7956:33;7238:1013;;;6936:1321;;;:::o;8564:277::-;8631:6;8684:2;8672:9;8663:7;8659:23;8655:32;8652:52;;;8700:1;8697;8690:12;8652:52;8732:9;8726:16;8785:5;8778:13;8771:21;8764:5;8761:32;8751:60;;8807:1;8804;8797:12;9028:253;9100:2;9094:9;9142:4;9130:17;;9177:18;9162:34;;9198:22;;;9159:62;9156:88;;;9224:18;;:::i;:::-;9260:2;9253:22;9028:253;:::o;9286:334::-;9357:2;9351:9;9413:2;9403:13;;-1:-1:-1;;9399:86:113;9387:99;;9516:18;9501:34;;9537:22;;;9498:62;9495:88;;;9563:18;;:::i;:::-;9599:2;9592:22;9286:334;;-1:-1:-1;9286:334:113:o;9625:1338::-;9721:6;9752:2;9795;9783:9;9774:7;9770:23;9766:32;9763:52;;;9811:1;9808;9801:12;9763:52;9844:9;9838:16;9873:18;9914:2;9906:6;9903:14;9900:34;;;9930:1;9927;9920:12;9900:34;9953:22;;;;10009:4;9991:16;;;9987:27;9984:47;;;10027:1;10024;10017:12;9984:47;10053:22;;:::i;:::-;10104:2;10098:9;10091:5;10084:24;10146:2;10142;10138:11;10132:18;10159:33;10184:7;10159:33;:::i;:::-;10224:7;10219:2;10212:5;10208:14;10201:31;;10278:2;10274;10270:11;10264:18;10259:2;10252:5;10248:14;10241:42;10329:2;10325;10321:11;10315:18;10310:2;10303:5;10299:14;10292:42;10373:3;10369:2;10365:12;10359:19;10403:2;10393:8;10390:16;10387:36;;;10419:1;10416;10409:12;10387:36;10450:8;10446:2;10442:17;10432:27;;;10497:7;10490:4;10486:2;10482:13;10478:27;10468:55;;10519:1;10516;10509:12;10468:55;10548:2;10542:9;10570:2;10566;10563:10;10560:36;;;10576:18;;:::i;:::-;10618:112;10726:2;-1:-1:-1;;10650:4:113;10646:2;10642:13;10638:86;10634:95;10618:112;:::i;:::-;10605:125;;10753:2;10746:5;10739:17;10793:7;10788:2;10783;10779;10775:11;10771:20;10768:33;10765:53;;;10814:1;10811;10804:12;10765:53;10827:67;10891:2;10886;10879:5;10875:14;10870:2;10866;10862:11;10827:67;:::i;:::-;-1:-1:-1;10921:3:113;10910:15;;10903:30;;;;10914:5;9625:1338;-1:-1:-1;;;;;9625:1338:113:o;10968:184::-;11020:77;11017:1;11010:88;11117:4;11114:1;11107:15;11141:4;11138:1;11131:15;11157:125;11222:9;;;11243:10;;;11240:36;;;11256:18;;:::i;11777:674::-;11883:6;11936:3;11924:9;11915:7;11911:23;11907:33;11904:53;;;11953:1;11950;11943:12;11904:53;11979:22;;:::i;:::-;12031:9;12025:16;12050:33;12075:7;12050:33;:::i;:::-;12092:22;;12159:2;12144:18;;12138:25;12172:33;12138:25;12172:33;:::i;:::-;12237:7;12232:2;12225:5;12221:14;12214:31;;12298:2;12287:9;12283:18;12277:25;12272:2;12265:5;12261:14;12254:49;12356:2;12345:9;12341:18;12335:25;12330:2;12323:5;12319:14;12312:49;12415:3;12404:9;12400:19;12394:26;12388:3;12381:5;12377:15;12370:51;12440:5;12430:15;;;11777:674;;;;:::o;12456:936::-;12551:6;12582:2;12625;12613:9;12604:7;12600:23;12596:32;12593:52;;;12641:1;12638;12631:12;12593:52;12674:9;12668:16;12703:18;12744:2;12736:6;12733:14;12730:34;;;12760:1;12757;12750:12;12730:34;12798:6;12787:9;12783:22;12773:32;;12843:7;12836:4;12832:2;12828:13;12824:27;12814:55;;12865:1;12862;12855:12;12814:55;12894:2;12888:9;12916:2;12912;12909:10;12906:36;;;12922:18;;:::i;:::-;12968:2;12965:1;12961:10;12951:20;;12991:28;13015:2;13011;13007:11;12991:28;:::i;:::-;13053:15;;;13123:11;;;13119:20;;;13084:12;;;;13151:19;;;13148:39;;;13183:1;13180;13173:12;13148:39;13207:11;;;;13227:135;13243:6;13238:3;13235:15;13227:135;;;13309:10;;13297:23;;13260:12;;;;13340;;;;13227:135;;;13381:5;12456:936;-1:-1:-1;;;;;;;;12456:936:113:o;13397:128::-;13464:9;;;13485:11;;;13482:37;;;13499:18;;:::i;13530:184::-;13582:77;13579:1;13572:88;13679:4;13676:1;13669:15;13703:4;13700:1;13693:15;13719:965;13814:6;13867:3;13855:9;13846:7;13842:23;13838:33;13835:53;;;13884:1;13881;13874:12;13835:53;13917:2;13911:9;13959:3;13951:6;13947:16;14029:6;14017:10;14014:22;13993:18;13981:10;13978:34;13975:62;13972:88;;;14040:18;;:::i;:::-;14076:2;14069:22;14115:16;;14100:32;;14175:2;14160:18;;14154:25;14188:31;14154:25;14188:31;:::i;:::-;14247:2;14235:15;;14228:30;14303:2;14288:18;;14282:25;14316:33;14282:25;14316:33;:::i;:::-;14382:7;14377:2;14369:6;14365:15;14358:32;;14444:2;14433:9;14429:18;14423:25;14418:2;14410:6;14406:15;14399:50;14504:3;14493:9;14489:19;14483:26;14477:3;14469:6;14465:16;14458:52;14555:3;14544:9;14540:19;14534:26;14591:1;14582:7;14579:14;14569:42;;14607:1;14604;14597:12;14569:42;14639:3;14627:16;;14620:33;14631:6;13719:965;-1:-1:-1;;;13719:965:113:o;14689:184::-;14741:77;14738:1;14731:88;14838:4;14835:1;14828:15;14862:4;14859:1;14852:15;15449:567;15646:42;15638:6;15634:55;15623:9;15616:74;15726:2;15721;15710:9;15706:18;15699:30;15765:6;15760:2;15749:9;15745:18;15738:34;15822:6;15814;15809:2;15798:9;15794:18;15781:48;15878:1;15849:22;;;15873:2;15845:31;;;15838:42;;;;15932:2;15920:15;;;-1:-1:-1;;15916:88:113;15901:104;15897:113;;15449:567;-1:-1:-1;;15449:567:113:o;16021:698::-;16116:6;16169:3;16157:9;16148:7;16144:23;16140:33;16137:53;;;16186:1;16183;16176:12;16137:53;16212:22;;:::i;:::-;16271:9;16258:23;16290:33;16315:7;16290:33;:::i;:::-;16332:22;;16406:2;16391:18;;16378:32;16419:33;16378:32;16419:33;:::i;:::-;16484:7;16479:2;16472:5;16468:14;16461:31;;16552:2;16541:9;16537:18;16524:32;16519:2;16512:5;16508:14;16501:56;16617:2;16606:9;16602:18;16589:32;16584:2;16577:5;16573:14;16566:56;16683:3;16672:9;16668:19;16655:33;16649:3;16642:5;16638:15;16631:58;16708:5;16698:15;;;16021:698;;;;:::o",
    "linkReferences": {},
    "immutableReferences": {
      "10": [
        {
          "start": 254,
          "length": 32
        },
        {
          "start": 457,
          "length": 32
        },
        {
          "start": 606,
          "length": 32
        },
        {
          "start": 759,
          "length": 32
        },
        {
          "start": 939,
          "length": 32
        },
        {
          "start": 1170,
          "length": 32
        },
        {
          "start": 2093,
          "length": 32
        },
        {
          "start": 2494,
          "length": 32
        },
        {
          "start": 2705,
          "length": 32
        },
        {
          "start": 2873,
          "length": 32
        },
        {
          "start": 3156,
          "length": 32
        }
      ]
    }
  },
  "methodIdentifiers": {
    "ORACLE()": "38013f02",
    "decodeRequestData(bytes32)": "4d610a46",
    "deleteResponse(bytes32,bytes32,address)": "6ab49fb7",
    "finalizeRequest(bytes32,address)": "309de607",
    "moduleName()": "93f0899a",
    "oracle()": "7dc0d1d0",
    "propose(bytes32,address,bytes,address)": "ec229abb",
    "requestData(bytes32)": "3661346b",
    "setupRequest(bytes32,bytes)": "2e76be2a"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"BondedResponseModule_AlreadyResponded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondedResponseModule_InvalidRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondedResponseModule_TooEarlyToFinalize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondedResponseModule_TooLateToDelete\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondedResponseModule_TooLateToPropose\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_OnlyOracle\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_responseData\",\"type\":\"bytes\"}],\"name\":\"ProposeResponse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"RequestFinalized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ORACLE\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"decodeRequestData\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IAccountingExtension\",\"name\":\"accountingExtension\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"bondToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bondSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"disputeWindow\",\"type\":\"uint256\"}],\"internalType\":\"struct IBondedResponseModule.RequestParameters\",\"name\":\"_params\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"}],\"name\":\"deleteResponse\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"finalizeRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moduleName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_moduleName\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_responseData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"internalType\":\"struct IOracle.Response\",\"name\":\"_response\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"requestData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"_requestData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"setupRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ProposeResponse(bytes32,address,bytes)\":{\"params\":{\"_proposer\":\"The user that proposed the response\",\"_requestId\":\"The ID of the request that the response was proposed\",\"_responseData\":\"The data for the response\"}},\"RequestFinalized(bytes32,address)\":{\"params\":{\"_finalizer\":\"The address that initiated the finalization\",\"_requestId\":\"The ID of the request that was finalized\"}}},\"kind\":\"dev\",\"methods\":{\"decodeRequestData(bytes32)\":{\"params\":{\"_requestId\":\"The ID of the request\"},\"returns\":{\"_params\":\"The struct containing the parameters for the request\"}},\"deleteResponse(bytes32,bytes32,address)\":{\"params\":{\"_proposer\":\"The user who proposed the response\",\"_requestId\":\"The ID of the request to delete the response from\",\"_responseId\":\"The ID of the response to delete\"}},\"finalizeRequest(bytes32,address)\":{\"params\":{\"_finalizer\":\"The user who triggered the finalization\",\"_requestId\":\"The ID of the request to finalize\"}},\"moduleName()\":{\"returns\":{\"_moduleName\":\"The name of the module.\"}},\"oracle()\":{\"returns\":{\"_oracle\":\"The address of the oracle\"}},\"propose(bytes32,address,bytes,address)\":{\"details\":\"The user must have previously deposited tokens into the accounting extension\",\"params\":{\"_proposer\":\"The user proposing the response\",\"_requestId\":\"The ID of the request to propose a response for\",\"_responseData\":\"The data for the response\",\"_sender\":\"The address calling propose on the Oracle\"},\"returns\":{\"_response\":\"The struct of proposed response\"}},\"setupRequest(bytes32,bytes)\":{\"params\":{\"_data\":\"The data of the request\",\"_requestId\":\"The ID of the request\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"BondedResponseModule_AlreadyResponded()\":[{\"notice\":\"Thrown when trying to propose a response while an undisputed response is already proposed\"}],\"BondedResponseModule_InvalidRequest()\":[{\"notice\":\"Thrown when trying to create an invalid request\"}],\"BondedResponseModule_TooEarlyToFinalize()\":[{\"notice\":\"Thrown when trying to finalize a request before the deadline\"}],\"BondedResponseModule_TooLateToDelete()\":[{\"notice\":\"Thrown when trying to delete a response after the proposing deadline\"}],\"BondedResponseModule_TooLateToPropose()\":[{\"notice\":\"Thrown when trying to propose a response after deadline\"}],\"Module_OnlyOracle()\":[{\"notice\":\"Thrown when the caller is not the oracle\"}]},\"events\":{\"ProposeResponse(bytes32,address,bytes)\":{\"notice\":\"Emitted when a response is proposed\"},\"RequestFinalized(bytes32,address)\":{\"notice\":\"Emitted when a request is finalized\"}},\"kind\":\"user\",\"methods\":{\"decodeRequestData(bytes32)\":{\"notice\":\"Returns the decoded data for a request\"},\"deleteResponse(bytes32,bytes32,address)\":{\"notice\":\"Allows a user to delete an undisputed response they proposed before the deadline, releasing the bond\"},\"finalizeRequest(bytes32,address)\":{\"notice\":\"Finalizes the request by releasing the bond of the proposer\"},\"moduleName()\":{\"notice\":\"Returns the name of the module.\"},\"oracle()\":{\"notice\":\"Returns the address of the oracle\"},\"propose(bytes32,address,bytes,address)\":{\"notice\":\"Proposes a response for a request, bonding the proposer's tokens\"},\"requestData(bytes32)\":{\"notice\":\"Returns the data of the request associated with the provided id\"},\"setupRequest(bytes32,bytes)\":{\"notice\":\"Stores the request data and runs module-specific hooks\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity/contracts/modules/response/BondedResponseModule.sol\":\"BondedResponseModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[\":@defi-wonderland/=node_modules/@defi-wonderland/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol\":{\"keccak256\":\"0xb528e0eea66984412d038db1edcbfe77ac642089975fae6b0b44e8be13319bbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e70d520407288d43d7c735fd7355502b514ba6feacaeb4a5dd86497e3f91eb41\",\"dweb:/ipfs/QmPXY7uXjnsFacp6VpL45bMrxCZGtQ8AAnecTXC9ASkpV7\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IModule.sol\":{\"keccak256\":\"0x72c2f68e8c2b749d9ae745269c706b137a640d6bd6f65f966238b547d61e3a05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4edb1aae7c4abd875d2da44a2dd83781c3c0a3d059edf2d1f2be1c44f865456f\",\"dweb:/ipfs/QmbEHy8tENha1ANEEZADpH4THmqC8aHyCXxFYPw4tS5mf4\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol\":{\"keccak256\":\"0x606262b4bb3b1447b1f6afef8a1b49088956b168a4b066f6f60da4712b95d3cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a763cdb6ba9f12a93e3d5238d6d3235c5c0c229df94793927f9d2abe00542823\",\"dweb:/ipfs/QmbAbfVyCiHvNvhHxc5r8tK5GUuVBATo15Ma5MirhZPtE6\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol\":{\"keccak256\":\"0x21707db43d55ba040893ef0ffefa7f9740c6e03b94d750637e6b2c047a16baa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae582ca2fdd6fc82c650333066c95a917221282ad7ef15ea62fb4a31e4ed864d\",\"dweb:/ipfs/QmdxvkpNCK46uYv31TxAtxCiRPSoxbT4hrs94WQfR4ctTM\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol\":{\"keccak256\":\"0xf6f465732ee119879e3317227f9cf6468055f4f98acdb4365f5b4eacda32948e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82e1928a7bbc5bce95e1b83d917e1470c72a0bec7494f6f42471b21c0f2b641e\",\"dweb:/ipfs/QmSjaBsNhzCfQd5xwZa98LNYSZ1TqAqo6inRTGD31ua4L8\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/request/IRequestModule.sol\":{\"keccak256\":\"0xefa5dd3334a1676cca1c1860c66c16adb1e399917742476d15de8737b5cb0032\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03bcff0500f4054b5f71b0badd1779f8dfaa7fc74fc64788991438a1d9d2d14d\",\"dweb:/ipfs/QmdDjbGPgBfbbyT26Xtt9uBD7nYnhSK43fa9skfuBrfjCc\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol\":{\"keccak256\":\"0x36e75a87661b234be605a7455c88eaf4e7cbc9f5b4ea08133dd6d9d5af8d6bc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://232536c4e8b2e9114035e57360976ff24931459fb22a026114d392d3e315ea67\",\"dweb:/ipfs/QmPYKU5RDGMqTZZzCCvVy7ssush4EQGgCCbzbeGpnejGno\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/response/IResponseModule.sol\":{\"keccak256\":\"0xd0610065a22a8d3323427d871a73b835e4d0dffb3afe4bb7e8bbee81b8b9ed1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c72dcbd36f11e87fc21c922684e5524f0c83830dc945ac92614ea1cd770a1bf\",\"dweb:/ipfs/QmfYnQfSDd2jS9QEAdpmDF6wVXWqitQpmJsSeEHs1mtUQP\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"solidity/contracts/modules/response/BondedResponseModule.sol\":{\"keccak256\":\"0x203278288c9cf3f3ce157ca3c06fbc839ed242e0c0c23b51bc2ac537067e3f5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15eeaa10dce29159fe04023e8508ea022ca0bcd19d8f9091ba9e24d708db1b22\",\"dweb:/ipfs/QmSx57XURhm8CV7JTjU1Hsmy1xPSaTzKexP5KBVRSijGZk\"]},\"solidity/interfaces/extensions/IAccountingExtension.sol\":{\"keccak256\":\"0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0\",\"dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5\"]},\"solidity/interfaces/modules/response/IBondedResponseModule.sol\":{\"keccak256\":\"0xd6c8945f72efc55d2a264a5e7f5aeb6bf8fa8627dcf476544ef73043ff73a645\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e776d595411b628a052ff3888bcbabd44283b8448f958904bd94c36b5a97da3\",\"dweb:/ipfs/QmVou5H5ozqacDfY8o1Cvj6p9HmoNh6GrHcvk5StQFNz2W\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.19+commit.7dd6d404"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "contract IOracle",
              "name": "_oracle",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondedResponseModule_AlreadyResponded"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondedResponseModule_InvalidRequest"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondedResponseModule_TooEarlyToFinalize"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondedResponseModule_TooLateToDelete"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondedResponseModule_TooLateToPropose"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "Module_OnlyOracle"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_proposer",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "bytes",
              "name": "_responseData",
              "type": "bytes",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ProposeResponse",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "RequestFinalized",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "ORACLE",
          "outputs": [
            {
              "internalType": "contract IOracle",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "decodeRequestData",
          "outputs": [
            {
              "internalType": "struct IBondedResponseModule.RequestParameters",
              "name": "_params",
              "type": "tuple",
              "components": [
                {
                  "internalType": "contract IAccountingExtension",
                  "name": "accountingExtension",
                  "type": "address"
                },
                {
                  "internalType": "contract IERC20",
                  "name": "bondToken",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "bondSize",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "disputeWindow",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_proposer",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "deleteResponse"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "finalizeRequest"
        },
        {
          "inputs": [],
          "stateMutability": "pure",
          "type": "function",
          "name": "moduleName",
          "outputs": [
            {
              "internalType": "string",
              "name": "_moduleName",
              "type": "string"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "oracle",
          "outputs": [
            {
              "internalType": "address",
              "name": "_oracle",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_proposer",
              "type": "address"
            },
            {
              "internalType": "bytes",
              "name": "_responseData",
              "type": "bytes"
            },
            {
              "internalType": "address",
              "name": "_sender",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "propose",
          "outputs": [
            {
              "internalType": "struct IOracle.Response",
              "name": "_response",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "disputeId",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes",
                  "name": "response",
                  "type": "bytes"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "requestData",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "_requestData",
              "type": "bytes"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "_data",
              "type": "bytes"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setupRequest"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "decodeRequestData(bytes32)": {
            "params": {
              "_requestId": "The ID of the request"
            },
            "returns": {
              "_params": "The struct containing the parameters for the request"
            }
          },
          "deleteResponse(bytes32,bytes32,address)": {
            "params": {
              "_proposer": "The user who proposed the response",
              "_requestId": "The ID of the request to delete the response from",
              "_responseId": "The ID of the response to delete"
            }
          },
          "finalizeRequest(bytes32,address)": {
            "params": {
              "_finalizer": "The user who triggered the finalization",
              "_requestId": "The ID of the request to finalize"
            }
          },
          "moduleName()": {
            "returns": {
              "_moduleName": "The name of the module."
            }
          },
          "oracle()": {
            "returns": {
              "_oracle": "The address of the oracle"
            }
          },
          "propose(bytes32,address,bytes,address)": {
            "details": "The user must have previously deposited tokens into the accounting extension",
            "params": {
              "_proposer": "The user proposing the response",
              "_requestId": "The ID of the request to propose a response for",
              "_responseData": "The data for the response",
              "_sender": "The address calling propose on the Oracle"
            },
            "returns": {
              "_response": "The struct of proposed response"
            }
          },
          "setupRequest(bytes32,bytes)": {
            "params": {
              "_data": "The data of the request",
              "_requestId": "The ID of the request"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "decodeRequestData(bytes32)": {
            "notice": "Returns the decoded data for a request"
          },
          "deleteResponse(bytes32,bytes32,address)": {
            "notice": "Allows a user to delete an undisputed response they proposed before the deadline, releasing the bond"
          },
          "finalizeRequest(bytes32,address)": {
            "notice": "Finalizes the request by releasing the bond of the proposer"
          },
          "moduleName()": {
            "notice": "Returns the name of the module."
          },
          "oracle()": {
            "notice": "Returns the address of the oracle"
          },
          "propose(bytes32,address,bytes,address)": {
            "notice": "Proposes a response for a request, bonding the proposer's tokens"
          },
          "requestData(bytes32)": {
            "notice": "Returns the data of the request associated with the provided id"
          },
          "setupRequest(bytes32,bytes)": {
            "notice": "Stores the request data and runs module-specific hooks"
          }
        },
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@defi-wonderland/=node_modules/@defi-wonderland/",
        "@openzeppelin/=node_modules/@openzeppelin/",
        "ds-test/=node_modules/ds-test/src/",
        "forge-std/=node_modules/forge-std/src/",
        "solmate/=node_modules/solmate/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 10000
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "solidity/contracts/modules/response/BondedResponseModule.sol": "BondedResponseModule"
      },
      "libraries": {}
    },
    "sources": {
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol": {
        "keccak256": "0xb528e0eea66984412d038db1edcbfe77ac642089975fae6b0b44e8be13319bbf",
        "urls": [
          "bzz-raw://e70d520407288d43d7c735fd7355502b514ba6feacaeb4a5dd86497e3f91eb41",
          "dweb:/ipfs/QmPXY7uXjnsFacp6VpL45bMrxCZGtQ8AAnecTXC9ASkpV7"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IModule.sol": {
        "keccak256": "0x72c2f68e8c2b749d9ae745269c706b137a640d6bd6f65f966238b547d61e3a05",
        "urls": [
          "bzz-raw://4edb1aae7c4abd875d2da44a2dd83781c3c0a3d059edf2d1f2be1c44f865456f",
          "dweb:/ipfs/QmbEHy8tENha1ANEEZADpH4THmqC8aHyCXxFYPw4tS5mf4"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol": {
        "keccak256": "0x606262b4bb3b1447b1f6afef8a1b49088956b168a4b066f6f60da4712b95d3cf",
        "urls": [
          "bzz-raw://a763cdb6ba9f12a93e3d5238d6d3235c5c0c229df94793927f9d2abe00542823",
          "dweb:/ipfs/QmbAbfVyCiHvNvhHxc5r8tK5GUuVBATo15Ma5MirhZPtE6"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol": {
        "keccak256": "0x21707db43d55ba040893ef0ffefa7f9740c6e03b94d750637e6b2c047a16baa4",
        "urls": [
          "bzz-raw://ae582ca2fdd6fc82c650333066c95a917221282ad7ef15ea62fb4a31e4ed864d",
          "dweb:/ipfs/QmdxvkpNCK46uYv31TxAtxCiRPSoxbT4hrs94WQfR4ctTM"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol": {
        "keccak256": "0xf6f465732ee119879e3317227f9cf6468055f4f98acdb4365f5b4eacda32948e",
        "urls": [
          "bzz-raw://82e1928a7bbc5bce95e1b83d917e1470c72a0bec7494f6f42471b21c0f2b641e",
          "dweb:/ipfs/QmSjaBsNhzCfQd5xwZa98LNYSZ1TqAqo6inRTGD31ua4L8"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/request/IRequestModule.sol": {
        "keccak256": "0xefa5dd3334a1676cca1c1860c66c16adb1e399917742476d15de8737b5cb0032",
        "urls": [
          "bzz-raw://03bcff0500f4054b5f71b0badd1779f8dfaa7fc74fc64788991438a1d9d2d14d",
          "dweb:/ipfs/QmdDjbGPgBfbbyT26Xtt9uBD7nYnhSK43fa9skfuBrfjCc"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol": {
        "keccak256": "0x36e75a87661b234be605a7455c88eaf4e7cbc9f5b4ea08133dd6d9d5af8d6bc6",
        "urls": [
          "bzz-raw://232536c4e8b2e9114035e57360976ff24931459fb22a026114d392d3e315ea67",
          "dweb:/ipfs/QmPYKU5RDGMqTZZzCCvVy7ssush4EQGgCCbzbeGpnejGno"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/response/IResponseModule.sol": {
        "keccak256": "0xd0610065a22a8d3323427d871a73b835e4d0dffb3afe4bb7e8bbee81b8b9ed1b",
        "urls": [
          "bzz-raw://8c72dcbd36f11e87fc21c922684e5524f0c83830dc945ac92614ea1cd770a1bf",
          "dweb:/ipfs/QmfYnQfSDd2jS9QEAdpmDF6wVXWqitQpmJsSeEHs1mtUQP"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": {
        "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305",
        "urls": [
          "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5",
          "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"
        ],
        "license": "MIT"
      },
      "solidity/contracts/modules/response/BondedResponseModule.sol": {
        "keccak256": "0x203278288c9cf3f3ce157ca3c06fbc839ed242e0c0c23b51bc2ac537067e3f5a",
        "urls": [
          "bzz-raw://15eeaa10dce29159fe04023e8508ea022ca0bcd19d8f9091ba9e24d708db1b22",
          "dweb:/ipfs/QmSx57XURhm8CV7JTjU1Hsmy1xPSaTzKexP5KBVRSijGZk"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/extensions/IAccountingExtension.sol": {
        "keccak256": "0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e",
        "urls": [
          "bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0",
          "dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/modules/response/IBondedResponseModule.sol": {
        "keccak256": "0xd6c8945f72efc55d2a264a5e7f5aeb6bf8fa8627dcf476544ef73043ff73a645",
        "urls": [
          "bzz-raw://1e776d595411b628a052ff3888bcbabd44283b8448f958904bd94c36b5a97da3",
          "dweb:/ipfs/QmVou5H5ozqacDfY8o1Cvj6p9HmoNh6GrHcvk5StQFNz2W"
        ],
        "license": "MIT"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "solidity/contracts/modules/response/BondedResponseModule.sol",
    "id": 42229,
    "exportedSymbols": {
      "BondedResponseModule": [
        42228
      ],
      "IBondedResponseModule": [
        44189
      ],
      "IModule": [
        1782
      ],
      "IOracle": [
        2282
      ],
      "Module": [
        98
      ]
    },
    "nodeType": "SourceUnit",
    "src": "32:4398:55",
    "nodes": [
      {
        "id": 41877,
        "nodeType": "PragmaDirective",
        "src": "32:24:55",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 41880,
        "nodeType": "ImportDirective",
        "src": "104:102:55",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 42229,
        "sourceUnit": 99,
        "symbolAliases": [
          {
            "foreign": {
              "id": 41878,
              "name": "Module",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 98,
              "src": "112:6:55",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 41879,
              "name": "IModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1782,
              "src": "120:7:55",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 41882,
        "nodeType": "ImportDirective",
        "src": "207:96:55",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 42229,
        "sourceUnit": 2283,
        "symbolAliases": [
          {
            "foreign": {
              "id": 41881,
              "name": "IOracle",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2282,
              "src": "215:7:55",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 41884,
        "nodeType": "ImportDirective",
        "src": "304:101:55",
        "nodes": [],
        "absolutePath": "solidity/interfaces/modules/response/IBondedResponseModule.sol",
        "file": "../../../interfaces/modules/response/IBondedResponseModule.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 42229,
        "sourceUnit": 44190,
        "symbolAliases": [
          {
            "foreign": {
              "id": 41883,
              "name": "IBondedResponseModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 44189,
              "src": "312:21:55",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 42228,
        "nodeType": "ContractDefinition",
        "src": "407:4022:55",
        "nodes": [
          {
            "id": 41898,
            "nodeType": "FunctionDefinition",
            "src": "474:47:55",
            "nodes": [],
            "body": {
              "id": 41897,
              "nodeType": "Block",
              "src": "519:2:55",
              "nodes": [],
              "statements": []
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 41894,
                    "name": "_oracle",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 41891,
                    "src": "510:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  }
                ],
                "id": 41895,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 41893,
                  "name": "Module",
                  "nameLocations": [
                    "503:6:55"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 98,
                  "src": "503:6:55"
                },
                "nodeType": "ModifierInvocation",
                "src": "503:15:55"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "parameters": {
              "id": 41892,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41891,
                  "mutability": "mutable",
                  "name": "_oracle",
                  "nameLocation": "494:7:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 41898,
                  "src": "486:15:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IOracle_$2282",
                    "typeString": "contract IOracle"
                  },
                  "typeName": {
                    "id": 41890,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41889,
                      "name": "IOracle",
                      "nameLocations": [
                        "486:7:55"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2282,
                      "src": "486:7:55"
                    },
                    "referencedDeclaration": 2282,
                    "src": "486:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "485:17:55"
            },
            "returnParameters": {
              "id": 41896,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "519:0:55"
            },
            "scope": 42228,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 41909,
            "nodeType": "FunctionDefinition",
            "src": "551:117:55",
            "nodes": [],
            "body": {
              "id": 41908,
              "nodeType": "Block",
              "src": "621:47:55",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41906,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41904,
                      "name": "_moduleName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41902,
                      "src": "627:11:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "426f6e646564526573706f6e73654d6f64756c65",
                      "id": 41905,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "641:22:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_1546e33878390ac8c7d064570f0969913ab69a259eb18969a8916044fc54d698",
                        "typeString": "literal_string \"BondedResponseModule\""
                      },
                      "value": "BondedResponseModule"
                    },
                    "src": "627:36:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 41907,
                  "nodeType": "ExpressionStatement",
                  "src": "627:36:55"
                }
              ]
            },
            "baseFunctions": [
              1781
            ],
            "documentation": {
              "id": 41899,
              "nodeType": "StructuredDocumentation",
              "src": "525:23:55",
              "text": "@inheritdoc IModule"
            },
            "functionSelector": "93f0899a",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "moduleName",
            "nameLocation": "560:10:55",
            "parameters": {
              "id": 41900,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "570:2:55"
            },
            "returnParameters": {
              "id": 41903,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41902,
                  "mutability": "mutable",
                  "name": "_moduleName",
                  "nameLocation": "608:11:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 41909,
                  "src": "594:25:55",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 41901,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "594:6:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "593:27:55"
            },
            "scope": 42228,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 41930,
            "nodeType": "FunctionDefinition",
            "src": "712:179:55",
            "nodes": [],
            "body": {
              "id": 41929,
              "nodeType": "Block",
              "src": "814:77:55",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 41927,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 41918,
                      "name": "_params",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41916,
                      "src": "820:7:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                        "typeString": "struct IBondedResponseModule.RequestParameters memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "baseExpression": {
                            "id": 41921,
                            "name": "requestData",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14,
                            "src": "841:11:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                              "typeString": "mapping(bytes32 => bytes storage ref)"
                            }
                          },
                          "id": 41923,
                          "indexExpression": {
                            "id": 41922,
                            "name": "_requestId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41912,
                            "src": "853:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "841:23:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        },
                        {
                          "components": [
                            {
                              "id": 41924,
                              "name": "RequestParameters",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44146,
                              "src": "867:17:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44146_storage_ptr_$",
                                "typeString": "type(struct IBondedResponseModule.RequestParameters storage pointer)"
                              }
                            }
                          ],
                          "id": 41925,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "866:19:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44146_storage_ptr_$",
                            "typeString": "type(struct IBondedResponseModule.RequestParameters storage pointer)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44146_storage_ptr_$",
                            "typeString": "type(struct IBondedResponseModule.RequestParameters storage pointer)"
                          }
                        ],
                        "expression": {
                          "id": 41919,
                          "name": "abi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -1,
                          "src": "830:3:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_abi",
                            "typeString": "abi"
                          }
                        },
                        "id": 41920,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "834:6:55",
                        "memberName": "decode",
                        "nodeType": "MemberAccess",
                        "src": "830:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 41926,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "830:56:55",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                        "typeString": "struct IBondedResponseModule.RequestParameters memory"
                      }
                    },
                    "src": "820:66:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                      "typeString": "struct IBondedResponseModule.RequestParameters memory"
                    }
                  },
                  "id": 41928,
                  "nodeType": "ExpressionStatement",
                  "src": "820:66:55"
                }
              ]
            },
            "baseFunctions": [
              44155
            ],
            "documentation": {
              "id": 41910,
              "nodeType": "StructuredDocumentation",
              "src": "672:37:55",
              "text": "@inheritdoc IBondedResponseModule"
            },
            "functionSelector": "4d610a46",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeRequestData",
            "nameLocation": "721:17:55",
            "parameters": {
              "id": 41913,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41912,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "747:10:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 41930,
                  "src": "739:18:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41911,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "739:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "738:20:55"
            },
            "returnParameters": {
              "id": 41917,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41916,
                  "mutability": "mutable",
                  "name": "_params",
                  "nameLocation": "805:7:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 41930,
                  "src": "780:32:55",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                    "typeString": "struct IBondedResponseModule.RequestParameters"
                  },
                  "typeName": {
                    "id": 41915,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41914,
                      "name": "RequestParameters",
                      "nameLocations": [
                        "780:17:55"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 44146,
                      "src": "780:17:55"
                    },
                    "referencedDeclaration": 44146,
                    "src": "780:17:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44146_storage_ptr",
                      "typeString": "struct IBondedResponseModule.RequestParameters"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "779:34:55"
            },
            "scope": 42228,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 42062,
            "nodeType": "FunctionDefinition",
            "src": "935:1747:55",
            "nodes": [],
            "body": {
              "id": 42061,
              "nodeType": "Block",
              "src": "1122:1560:55",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    41949
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41949,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "1153:7:55",
                      "nodeType": "VariableDeclaration",
                      "scope": 42061,
                      "src": "1128:32:55",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                        "typeString": "struct IBondedResponseModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 41948,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 41947,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "1128:17:55"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 44146,
                          "src": "1128:17:55"
                        },
                        "referencedDeclaration": 44146,
                        "src": "1128:17:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$44146_storage_ptr",
                          "typeString": "struct IBondedResponseModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41953,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 41951,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41933,
                        "src": "1181:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 41950,
                      "name": "decodeRequestData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41930,
                      "src": "1163:17:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_RequestParameters_$44146_memory_ptr_$",
                        "typeString": "function (bytes32) view returns (struct IBondedResponseModule.RequestParameters memory)"
                      }
                    },
                    "id": 41952,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1163:29:55",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                      "typeString": "struct IBondedResponseModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1128:64:55"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 41958,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 41954,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -4,
                        "src": "1244:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 41955,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1250:9:55",
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "src": "1244:15:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "expression": {
                        "id": 41956,
                        "name": "_params",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41949,
                        "src": "1263:7:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                          "typeString": "struct IBondedResponseModule.RequestParameters memory"
                        }
                      },
                      "id": 41957,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1271:8:55",
                      "memberName": "deadline",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 44143,
                      "src": "1263:16:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1244:35:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 41962,
                  "nodeType": "IfStatement",
                  "src": "1240:87:55",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 41959,
                        "name": "BondedResponseModule_TooLateToPropose",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44124,
                        "src": "1288:37:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 41960,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1288:39:55",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 41961,
                    "nodeType": "RevertStatement",
                    "src": "1281:46:55"
                  }
                },
                {
                  "assignments": [
                    41967
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41967,
                      "mutability": "mutable",
                      "name": "_responseIds",
                      "nameLocation": "1441:12:55",
                      "nodeType": "VariableDeclaration",
                      "scope": 42061,
                      "src": "1424:29:55",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 41965,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1424:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 41966,
                        "nodeType": "ArrayTypeName",
                        "src": "1424:9:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41972,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 41970,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41933,
                        "src": "1478:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 41968,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "1456:6:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 41969,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1463:14:55",
                      "memberName": "getResponseIds",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2267,
                      "src": "1456:21:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                        "typeString": "function (bytes32) view external returns (bytes32[] memory)"
                      }
                    },
                    "id": 41971,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1456:33:55",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1424:65:55"
                },
                {
                  "assignments": [
                    41974
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 41974,
                      "mutability": "mutable",
                      "name": "_responsesLength",
                      "nameLocation": "1503:16:55",
                      "nodeType": "VariableDeclaration",
                      "scope": 42061,
                      "src": "1495:24:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 41973,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1495:7:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 41977,
                  "initialValue": {
                    "expression": {
                      "id": 41975,
                      "name": "_responseIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41967,
                      "src": "1522:12:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "id": 41976,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "1535:6:55",
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "1522:19:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1495:46:55"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 41980,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 41978,
                      "name": "_responsesLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41974,
                      "src": "1552:16:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 41979,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1572:1:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1552:21:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 42024,
                  "nodeType": "IfStatement",
                  "src": "1548:670:55",
                  "trueBody": {
                    "id": 42023,
                    "nodeType": "Block",
                    "src": "1575:643:55",
                    "statements": [
                      {
                        "assignments": [
                          41982
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 41982,
                            "mutability": "mutable",
                            "name": "_disputeId",
                            "nameLocation": "1591:10:55",
                            "nodeType": "VariableDeclaration",
                            "scope": 42023,
                            "src": "1583:18:55",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 41981,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1583:7:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 41992,
                        "initialValue": {
                          "expression": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 41985,
                                  "name": "_responseIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 41967,
                                  "src": "1623:12:55",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                    "typeString": "bytes32[] memory"
                                  }
                                },
                                "id": 41989,
                                "indexExpression": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 41988,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 41986,
                                    "name": "_responsesLength",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 41974,
                                    "src": "1636:16:55",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "-",
                                  "rightExpression": {
                                    "hexValue": "31",
                                    "id": 41987,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1655:1:55",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "src": "1636:20:55",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1623:34:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "id": 41983,
                                "name": "ORACLE",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10,
                                "src": "1604:6:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IOracle_$2282",
                                  "typeString": "contract IOracle"
                                }
                              },
                              "id": 41984,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1611:11:55",
                              "memberName": "getResponse",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2118,
                              "src": "1604:18:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Response_$2031_memory_ptr_$",
                                "typeString": "function (bytes32) view external returns (struct IOracle.Response memory)"
                              }
                            },
                            "id": 41990,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1604:54:55",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                              "typeString": "struct IOracle.Response memory"
                            }
                          },
                          "id": 41991,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1659:9:55",
                          "memberName": "disputeId",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 2028,
                          "src": "1604:64:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1583:85:55"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 41998,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 41993,
                            "name": "_disputeId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 41982,
                            "src": "1733:10:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 41996,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1755:1:55",
                                "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": 41995,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1747:7:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 41994,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1747:7:55",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 41997,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1747:10:55",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "1733:24:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 42002,
                        "nodeType": "IfStatement",
                        "src": "1729:76:55",
                        "trueBody": {
                          "errorCall": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 41999,
                              "name": "BondedResponseModule_AlreadyResponded",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44127,
                              "src": "1766:37:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 42000,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1766:39:55",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 42001,
                          "nodeType": "RevertStatement",
                          "src": "1759:46:55"
                        }
                      },
                      {
                        "assignments": [
                          42007
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 42007,
                            "mutability": "mutable",
                            "name": "_dispute",
                            "nameLocation": "1836:8:55",
                            "nodeType": "VariableDeclaration",
                            "scope": 42023,
                            "src": "1813:31:55",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                              "typeString": "struct IOracle.Dispute"
                            },
                            "typeName": {
                              "id": 42006,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 42005,
                                "name": "IOracle.Dispute",
                                "nameLocations": [
                                  "1813:7:55",
                                  "1821:7:55"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 2045,
                                "src": "1813:15:55"
                              },
                              "referencedDeclaration": 2045,
                              "src": "1813:15:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Dispute_$2045_storage_ptr",
                                "typeString": "struct IOracle.Dispute"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 42012,
                        "initialValue": {
                          "arguments": [
                            {
                              "id": 42010,
                              "name": "_disputeId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 41982,
                              "src": "1865:10:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "id": 42008,
                              "name": "ORACLE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10,
                              "src": "1847:6:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IOracle_$2282",
                                "typeString": "contract IOracle"
                              }
                            },
                            "id": 42009,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1854:10:55",
                            "memberName": "getDispute",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2162,
                            "src": "1847:17:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Dispute_$2045_memory_ptr_$",
                              "typeString": "function (bytes32) view external returns (struct IOracle.Dispute memory)"
                            }
                          },
                          "id": 42011,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1847:29:55",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                            "typeString": "struct IOracle.Dispute memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1813:63:55"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                            "typeString": "enum IOracle.DisputeStatus"
                          },
                          "id": 42018,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 42013,
                              "name": "_dispute",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42007,
                              "src": "2118:8:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                                "typeString": "struct IOracle.Dispute memory"
                              }
                            },
                            "id": 42014,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2127:6:55",
                            "memberName": "status",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2044,
                            "src": "2118:15:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                              "typeString": "enum IOracle.DisputeStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "expression": {
                                "id": 42015,
                                "name": "IOracle",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 2282,
                                "src": "2137:7:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_IOracle_$2282_$",
                                  "typeString": "type(contract IOracle)"
                                }
                              },
                              "id": 42016,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2145:13:55",
                              "memberName": "DisputeStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2052,
                              "src": "2137:21:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_DisputeStatus_$2052_$",
                                "typeString": "type(enum IOracle.DisputeStatus)"
                              }
                            },
                            "id": 42017,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "2159:4:55",
                            "memberName": "Lost",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2050,
                            "src": "2137:26:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_DisputeStatus_$2052",
                              "typeString": "enum IOracle.DisputeStatus"
                            }
                          },
                          "src": "2118:45:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 42022,
                        "nodeType": "IfStatement",
                        "src": "2114:97:55",
                        "trueBody": {
                          "errorCall": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 42019,
                              "name": "BondedResponseModule_AlreadyResponded",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44127,
                              "src": "2172:37:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 42020,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2172:39:55",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 42021,
                          "nodeType": "RevertStatement",
                          "src": "2165:46:55"
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 42038,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 42025,
                      "name": "_response",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41945,
                      "src": "2224:9:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                        "typeString": "struct IOracle.Response memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 42028,
                          "name": "_requestId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41933,
                          "src": "2272:10:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 42031,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2309:1:55",
                              "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": 42030,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2301:7:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_bytes32_$",
                              "typeString": "type(bytes32)"
                            },
                            "typeName": {
                              "id": 42029,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "2301:7:55",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 42032,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2301:10:55",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 42033,
                          "name": "_proposer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41935,
                          "src": "2329:9:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "id": 42034,
                          "name": "_responseData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41937,
                          "src": "2356:13:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        },
                        {
                          "expression": {
                            "id": 42035,
                            "name": "block",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -4,
                            "src": "2388:5:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_block",
                              "typeString": "block"
                            }
                          },
                          "id": 42036,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2394:9:55",
                          "memberName": "timestamp",
                          "nodeType": "MemberAccess",
                          "src": "2388:15:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 42026,
                          "name": "IOracle",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 2282,
                          "src": "2236:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IOracle_$2282_$",
                            "typeString": "type(contract IOracle)"
                          }
                        },
                        "id": 42027,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2244:8:55",
                        "memberName": "Response",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2031,
                        "src": "2236:16:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Response_$2031_storage_ptr_$",
                          "typeString": "type(struct IOracle.Response storage pointer)"
                        }
                      },
                      "id": 42037,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [
                        "2261:9:55",
                        "2290:9:55",
                        "2319:8:55",
                        "2346:8:55",
                        "2377:9:55"
                      ],
                      "names": [
                        "requestId",
                        "disputeId",
                        "proposer",
                        "response",
                        "createdAt"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "2236:174:55",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                        "typeString": "struct IOracle.Response memory"
                      }
                    },
                    "src": "2224:186:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                      "typeString": "struct IOracle.Response memory"
                    }
                  },
                  "id": 42039,
                  "nodeType": "ExpressionStatement",
                  "src": "2224:186:55"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 42045,
                          "name": "_response",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41945,
                          "src": "2467:9:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                            "typeString": "struct IOracle.Response memory"
                          }
                        },
                        "id": 42046,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2477:8:55",
                        "memberName": "proposer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2024,
                        "src": "2467:18:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 42047,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41933,
                        "src": "2505:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 42048,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41949,
                          "src": "2531:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                            "typeString": "struct IBondedResponseModule.RequestParameters memory"
                          }
                        },
                        "id": 42049,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2539:9:55",
                        "memberName": "bondToken",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 44139,
                        "src": "2531:17:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      {
                        "expression": {
                          "id": 42050,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41949,
                          "src": "2565:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                            "typeString": "struct IBondedResponseModule.RequestParameters memory"
                          }
                        },
                        "id": 42051,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2573:8:55",
                        "memberName": "bondSize",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 44141,
                        "src": "2565:16:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 42052,
                        "name": "_sender",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41939,
                        "src": "2598:7:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 42040,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 41949,
                          "src": "2417:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                            "typeString": "struct IBondedResponseModule.RequestParameters memory"
                          }
                        },
                        "id": 42043,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2425:19:55",
                        "memberName": "accountingExtension",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 44136,
                        "src": "2417:27:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                          "typeString": "contract IAccountingExtension"
                        }
                      },
                      "id": 42044,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2445:4:55",
                      "memberName": "bond",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42545,
                      "src": "2417:32:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IERC20_$2822_$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (address,bytes32,contract IERC20,uint256,address) external"
                      }
                    },
                    "id": 42053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "2458:7:55",
                      "2493:10:55",
                      "2523:6:55",
                      "2556:7:55",
                      "2589:7:55"
                    ],
                    "names": [
                      "_bonder",
                      "_requestId",
                      "_token",
                      "_amount",
                      "_sender"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "2417:195:55",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 42054,
                  "nodeType": "ExpressionStatement",
                  "src": "2417:195:55"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 42056,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41933,
                        "src": "2640:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 42057,
                        "name": "_proposer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41935,
                        "src": "2652:9:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 42058,
                        "name": "_responseData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 41937,
                        "src": "2663:13:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 42055,
                      "name": "ProposeResponse",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44118,
                      "src": "2624:15:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,address,bytes memory)"
                      }
                    },
                    "id": 42059,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2624:53:55",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 42060,
                  "nodeType": "EmitStatement",
                  "src": "2619:58:55"
                }
              ]
            },
            "baseFunctions": [
              44170
            ],
            "documentation": {
              "id": 41931,
              "nodeType": "StructuredDocumentation",
              "src": "895:37:55",
              "text": "@inheritdoc IBondedResponseModule"
            },
            "functionSelector": "ec229abb",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 41942,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 41941,
                  "name": "onlyOracle",
                  "nameLocations": [
                    "1067:10:55"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 41,
                  "src": "1067:10:55"
                },
                "nodeType": "ModifierInvocation",
                "src": "1067:10:55"
              }
            ],
            "name": "propose",
            "nameLocation": "944:7:55",
            "parameters": {
              "id": 41940,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41933,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "965:10:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 42062,
                  "src": "957:18:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 41932,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "957:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41935,
                  "mutability": "mutable",
                  "name": "_proposer",
                  "nameLocation": "989:9:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 42062,
                  "src": "981:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 41934,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "981:7:55",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41937,
                  "mutability": "mutable",
                  "name": "_responseData",
                  "nameLocation": "1019:13:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 42062,
                  "src": "1004:28:55",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 41936,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1004:5:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 41939,
                  "mutability": "mutable",
                  "name": "_sender",
                  "nameLocation": "1046:7:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 42062,
                  "src": "1038:15:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 41938,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1038:7:55",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "951:106:55"
            },
            "returnParameters": {
              "id": 41946,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 41945,
                  "mutability": "mutable",
                  "name": "_response",
                  "nameLocation": "1111:9:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 42062,
                  "src": "1087:33:55",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                    "typeString": "struct IOracle.Response"
                  },
                  "typeName": {
                    "id": 41944,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 41943,
                      "name": "IOracle.Response",
                      "nameLocations": [
                        "1087:7:55",
                        "1095:8:55"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2031,
                      "src": "1087:16:55"
                    },
                    "referencedDeclaration": 2031,
                    "src": "1087:16:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$2031_storage_ptr",
                      "typeString": "struct IOracle.Response"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1086:35:55"
            },
            "scope": 42228,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42104,
            "nodeType": "FunctionDefinition",
            "src": "2726:431:55",
            "nodes": [],
            "body": {
              "id": 42103,
              "nodeType": "Block",
              "src": "2818:339:55",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    42076
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42076,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "2849:7:55",
                      "nodeType": "VariableDeclaration",
                      "scope": 42103,
                      "src": "2824:32:55",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                        "typeString": "struct IBondedResponseModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 42075,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 42074,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "2824:17:55"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 44146,
                          "src": "2824:17:55"
                        },
                        "referencedDeclaration": 44146,
                        "src": "2824:17:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$44146_storage_ptr",
                          "typeString": "struct IBondedResponseModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42080,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 42078,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42065,
                        "src": "2877:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 42077,
                      "name": "decodeRequestData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41930,
                      "src": "2859:17:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_RequestParameters_$44146_memory_ptr_$",
                        "typeString": "function (bytes32) view returns (struct IBondedResponseModule.RequestParameters memory)"
                      }
                    },
                    "id": 42079,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2859:29:55",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                      "typeString": "struct IBondedResponseModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2824:64:55"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 42085,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 42081,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -4,
                        "src": "2899:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 42082,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2905:9:55",
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "src": "2899:15:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "expression": {
                        "id": 42083,
                        "name": "_params",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42076,
                        "src": "2917:7:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                          "typeString": "struct IBondedResponseModule.RequestParameters memory"
                        }
                      },
                      "id": 42084,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2925:8:55",
                      "memberName": "deadline",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 44143,
                      "src": "2917:16:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2899:34:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 42089,
                  "nodeType": "IfStatement",
                  "src": "2895:85:55",
                  "trueBody": {
                    "errorCall": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 42086,
                        "name": "BondedResponseModule_TooLateToDelete",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44130,
                        "src": "2942:36:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_error_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 42087,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2942:38:55",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$",
                        "typeString": "tuple()"
                      }
                    },
                    "id": 42088,
                    "nodeType": "RevertStatement",
                    "src": "2935:45:55"
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 42095,
                        "name": "_proposer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42069,
                        "src": "3040:9:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 42096,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42065,
                        "src": "3069:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 42097,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42076,
                          "src": "3095:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                            "typeString": "struct IBondedResponseModule.RequestParameters memory"
                          }
                        },
                        "id": 42098,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3103:9:55",
                        "memberName": "bondToken",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 44139,
                        "src": "3095:17:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      {
                        "expression": {
                          "id": 42099,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42076,
                          "src": "3129:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                            "typeString": "struct IBondedResponseModule.RequestParameters memory"
                          }
                        },
                        "id": 42100,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3137:8:55",
                        "memberName": "bondSize",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 44141,
                        "src": "3129:16:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 42090,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42076,
                          "src": "2987:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                            "typeString": "struct IBondedResponseModule.RequestParameters memory"
                          }
                        },
                        "id": 42093,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2995:19:55",
                        "memberName": "accountingExtension",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 44136,
                        "src": "2987:27:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                          "typeString": "contract IAccountingExtension"
                        }
                      },
                      "id": 42094,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3015:7:55",
                      "memberName": "release",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42558,
                      "src": "2987:35:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IERC20_$2822_$_t_uint256_$returns$__$",
                        "typeString": "function (address,bytes32,contract IERC20,uint256) external"
                      }
                    },
                    "id": 42101,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "3031:7:55",
                      "3057:10:55",
                      "3087:6:55",
                      "3120:7:55"
                    ],
                    "names": [
                      "_bonder",
                      "_requestId",
                      "_token",
                      "_amount"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "2987:165:55",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 42102,
                  "nodeType": "ExpressionStatement",
                  "src": "2987:165:55"
                }
              ]
            },
            "baseFunctions": [
              44180
            ],
            "documentation": {
              "id": 42063,
              "nodeType": "StructuredDocumentation",
              "src": "2686:37:55",
              "text": "@inheritdoc IBondedResponseModule"
            },
            "functionSelector": "6ab49fb7",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 42072,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 42071,
                  "name": "onlyOracle",
                  "nameLocations": [
                    "2807:10:55"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 41,
                  "src": "2807:10:55"
                },
                "nodeType": "ModifierInvocation",
                "src": "2807:10:55"
              }
            ],
            "name": "deleteResponse",
            "nameLocation": "2735:14:55",
            "parameters": {
              "id": 42070,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42065,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "2758:10:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 42104,
                  "src": "2750:18:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42064,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2750:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42067,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 42104,
                  "src": "2770:7:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42066,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2770:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42069,
                  "mutability": "mutable",
                  "name": "_proposer",
                  "nameLocation": "2787:9:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 42104,
                  "src": "2779:17:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42068,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2779:7:55",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2749:48:55"
            },
            "returnParameters": {
              "id": 42073,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2818:0:55"
            },
            "scope": 42228,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42197,
            "nodeType": "FunctionDefinition",
            "src": "3201:926:55",
            "nodes": [],
            "body": {
              "id": 42196,
              "nodeType": "Block",
              "src": "3338:789:55",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    42119
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42119,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "3369:7:55",
                      "nodeType": "VariableDeclaration",
                      "scope": 42196,
                      "src": "3344:32:55",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                        "typeString": "struct IBondedResponseModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 42118,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 42117,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "3344:17:55"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 44146,
                          "src": "3344:17:55"
                        },
                        "referencedDeclaration": 44146,
                        "src": "3344:17:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$44146_storage_ptr",
                          "typeString": "struct IBondedResponseModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42123,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 42121,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42107,
                        "src": "3397:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 42120,
                      "name": "decodeRequestData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 41930,
                      "src": "3379:17:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_RequestParameters_$44146_memory_ptr_$",
                        "typeString": "function (bytes32) view returns (struct IBondedResponseModule.RequestParameters memory)"
                      }
                    },
                    "id": 42122,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3379:29:55",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                      "typeString": "struct IBondedResponseModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3344:64:55"
                },
                {
                  "assignments": [
                    42125
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42125,
                      "mutability": "mutable",
                      "name": "_isModule",
                      "nameLocation": "3420:9:55",
                      "nodeType": "VariableDeclaration",
                      "scope": 42196,
                      "src": "3415:14:55",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 42124,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "3415:4:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42131,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 42128,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42107,
                        "src": "3453:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 42129,
                        "name": "_finalizer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42109,
                        "src": "3465:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 42126,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "3432:6:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 42127,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3439:13:55",
                      "memberName": "allowedModule",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2231,
                      "src": "3432:20:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$",
                        "typeString": "function (bytes32,address) view external returns (bool)"
                      }
                    },
                    "id": 42130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3432:44:55",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3415:61:55"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 42139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 42133,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "3487:10:55",
                      "subExpression": {
                        "id": 42132,
                        "name": "_isModule",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42125,
                        "src": "3488:9:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 42138,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 42134,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -4,
                          "src": "3501:5:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 42135,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3507:9:55",
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "src": "3501:15:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "expression": {
                          "id": 42136,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 42119,
                          "src": "3519:7:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                            "typeString": "struct IBondedResponseModule.RequestParameters memory"
                          }
                        },
                        "id": 42137,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3527:8:55",
                        "memberName": "deadline",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 44143,
                        "src": "3519:16:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3501:34:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3487:48:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 42144,
                  "nodeType": "IfStatement",
                  "src": "3483:117:55",
                  "trueBody": {
                    "id": 42143,
                    "nodeType": "Block",
                    "src": "3537:63:55",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 42140,
                            "name": "BondedResponseModule_TooEarlyToFinalize",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44121,
                            "src": "3552:39:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 42141,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3552:41:55",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 42142,
                        "nodeType": "RevertStatement",
                        "src": "3545:48:55"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    42149
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42149,
                      "mutability": "mutable",
                      "name": "_response",
                      "nameLocation": "3630:9:55",
                      "nodeType": "VariableDeclaration",
                      "scope": 42196,
                      "src": "3606:33:55",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                        "typeString": "struct IOracle.Response"
                      },
                      "typeName": {
                        "id": 42148,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 42147,
                          "name": "IOracle.Response",
                          "nameLocations": [
                            "3606:7:55",
                            "3614:8:55"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 2031,
                          "src": "3606:16:55"
                        },
                        "referencedDeclaration": 2031,
                        "src": "3606:16:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Response_$2031_storage_ptr",
                          "typeString": "struct IOracle.Response"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42154,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 42152,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42107,
                        "src": "3670:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 42150,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "3642:6:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 42151,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3649:20:55",
                      "memberName": "getFinalizedResponse",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2258,
                      "src": "3642:27:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Response_$2031_memory_ptr_$",
                        "typeString": "function (bytes32) view external returns (struct IOracle.Response memory)"
                      }
                    },
                    "id": 42153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3642:39:55",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                      "typeString": "struct IOracle.Response memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3606:75:55"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 42158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 42155,
                        "name": "_response",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42149,
                        "src": "3691:9:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                          "typeString": "struct IOracle.Response memory"
                        }
                      },
                      "id": 42156,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3701:9:55",
                      "memberName": "createdAt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2022,
                      "src": "3691:19:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 42157,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3714:1:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3691:24:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 42190,
                  "nodeType": "IfStatement",
                  "src": "3687:385:55",
                  "trueBody": {
                    "id": 42189,
                    "nodeType": "Block",
                    "src": "3717:355:55",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 42169,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 42160,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "3729:10:55",
                            "subExpression": {
                              "id": 42159,
                              "name": "_isModule",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42125,
                              "src": "3730:9:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 42168,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 42161,
                                "name": "block",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -4,
                                "src": "3743:5:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_block",
                                  "typeString": "block"
                                }
                              },
                              "id": 42162,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "3749:9:55",
                              "memberName": "timestamp",
                              "nodeType": "MemberAccess",
                              "src": "3743:15:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 42167,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 42163,
                                  "name": "_response",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42149,
                                  "src": "3761:9:55",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                                    "typeString": "struct IOracle.Response memory"
                                  }
                                },
                                "id": 42164,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "3771:9:55",
                                "memberName": "createdAt",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2022,
                                "src": "3761:19:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "expression": {
                                  "id": 42165,
                                  "name": "_params",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 42119,
                                  "src": "3783:7:55",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                                    "typeString": "struct IBondedResponseModule.RequestParameters memory"
                                  }
                                },
                                "id": 42166,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "3791:13:55",
                                "memberName": "disputeWindow",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 44145,
                                "src": "3783:21:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "3761:43:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "3743:61:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "3729:75:55",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 42174,
                        "nodeType": "IfStatement",
                        "src": "3725:148:55",
                        "trueBody": {
                          "id": 42173,
                          "nodeType": "Block",
                          "src": "3806:67:55",
                          "statements": [
                            {
                              "errorCall": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 42170,
                                  "name": "BondedResponseModule_TooEarlyToFinalize",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 44121,
                                  "src": "3823:39:55",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_error_pure$__$returns$__$",
                                    "typeString": "function () pure"
                                  }
                                },
                                "id": 42171,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3823:41:55",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 42172,
                              "nodeType": "RevertStatement",
                              "src": "3816:48:55"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 42180,
                                "name": "_response",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42149,
                                "src": "3936:9:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                                  "typeString": "struct IOracle.Response memory"
                                }
                              },
                              "id": 42181,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "3946:8:55",
                              "memberName": "proposer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2024,
                              "src": "3936:18:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 42182,
                              "name": "_requestId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 42107,
                              "src": "3976:10:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "expression": {
                                "id": 42183,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42119,
                                "src": "4004:7:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                                  "typeString": "struct IBondedResponseModule.RequestParameters memory"
                                }
                              },
                              "id": 42184,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4012:9:55",
                              "memberName": "bondToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 44139,
                              "src": "4004:17:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IERC20_$2822",
                                "typeString": "contract IERC20"
                              }
                            },
                            {
                              "expression": {
                                "id": 42185,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42119,
                                "src": "4040:7:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                                  "typeString": "struct IBondedResponseModule.RequestParameters memory"
                                }
                              },
                              "id": 42186,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4048:8:55",
                              "memberName": "bondSize",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 44141,
                              "src": "4040:16:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_contract$_IERC20_$2822",
                                "typeString": "contract IERC20"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 42175,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 42119,
                                "src": "3881:7:55",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                                  "typeString": "struct IBondedResponseModule.RequestParameters memory"
                                }
                              },
                              "id": 42178,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "3889:19:55",
                              "memberName": "accountingExtension",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 44136,
                              "src": "3881:27:55",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                                "typeString": "contract IAccountingExtension"
                              }
                            },
                            "id": 42179,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3909:7:55",
                            "memberName": "release",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 42558,
                            "src": "3881:35:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IERC20_$2822_$_t_uint256_$returns$__$",
                              "typeString": "function (address,bytes32,contract IERC20,uint256) external"
                            }
                          },
                          "id": 42187,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "3927:7:55",
                            "3964:10:55",
                            "3996:6:55",
                            "4031:7:55"
                          ],
                          "names": [
                            "_bonder",
                            "_requestId",
                            "_token",
                            "_amount"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "3881:184:55",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 42188,
                        "nodeType": "ExpressionStatement",
                        "src": "3881:184:55"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 42192,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42107,
                        "src": "4099:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 42193,
                        "name": "_finalizer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42109,
                        "src": "4111:10:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 42191,
                      "name": "RequestFinalized",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1742,
                      "src": "4082:16:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 42194,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4082:40:55",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 42195,
                  "nodeType": "EmitStatement",
                  "src": "4077:45:55"
                }
              ]
            },
            "baseFunctions": [
              88,
              44188
            ],
            "documentation": {
              "id": 42105,
              "nodeType": "StructuredDocumentation",
              "src": "3161:37:55",
              "text": "@inheritdoc IBondedResponseModule"
            },
            "functionSelector": "309de607",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 42115,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 42114,
                  "name": "onlyOracle",
                  "nameLocations": [
                    "3327:10:55"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 41,
                  "src": "3327:10:55"
                },
                "nodeType": "ModifierInvocation",
                "src": "3327:10:55"
              }
            ],
            "name": "finalizeRequest",
            "nameLocation": "3210:15:55",
            "overrides": {
              "id": 42113,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 42111,
                  "name": "IBondedResponseModule",
                  "nameLocations": [
                    "3296:21:55"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 44189,
                  "src": "3296:21:55"
                },
                {
                  "id": 42112,
                  "name": "Module",
                  "nameLocations": [
                    "3319:6:55"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 98,
                  "src": "3319:6:55"
                }
              ],
              "src": "3287:39:55"
            },
            "parameters": {
              "id": 42110,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42107,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "3239:10:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 42197,
                  "src": "3231:18:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42106,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3231:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42109,
                  "mutability": "mutable",
                  "name": "_finalizer",
                  "nameLocation": "3263:10:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 42197,
                  "src": "3255:18:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42108,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3255:7:55",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3225:52:55"
            },
            "returnParameters": {
              "id": 42116,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3338:0:55"
            },
            "scope": 42228,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42227,
            "nodeType": "FunctionDefinition",
            "src": "4156:271:55",
            "nodes": [],
            "body": {
              "id": 42226,
              "nodeType": "Block",
              "src": "4238:189:55",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    42208
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 42208,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "4269:7:55",
                      "nodeType": "VariableDeclaration",
                      "scope": 42226,
                      "src": "4244:32:55",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                        "typeString": "struct IBondedResponseModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 42207,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 42206,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "4244:17:55"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 44146,
                          "src": "4244:17:55"
                        },
                        "referencedDeclaration": 44146,
                        "src": "4244:17:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$44146_storage_ptr",
                          "typeString": "struct IBondedResponseModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 42215,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 42211,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42202,
                        "src": "4290:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "components": [
                          {
                            "id": 42212,
                            "name": "RequestParameters",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44146,
                            "src": "4298:17:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44146_storage_ptr_$",
                              "typeString": "type(struct IBondedResponseModule.RequestParameters storage pointer)"
                            }
                          }
                        ],
                        "id": 42213,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "4297:19:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44146_storage_ptr_$",
                          "typeString": "type(struct IBondedResponseModule.RequestParameters storage pointer)"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_type$_t_struct$_RequestParameters_$44146_storage_ptr_$",
                          "typeString": "type(struct IBondedResponseModule.RequestParameters storage pointer)"
                        }
                      ],
                      "expression": {
                        "id": 42209,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -1,
                        "src": "4279:3:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 42210,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "4283:6:55",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "4279:10:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 42214,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4279:38:55",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                      "typeString": "struct IBondedResponseModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4244:73:55"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 42220,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 42216,
                        "name": "_params",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 42208,
                        "src": "4327:7:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$44146_memory_ptr",
                          "typeString": "struct IBondedResponseModule.RequestParameters memory"
                        }
                      },
                      "id": 42217,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4335:8:55",
                      "memberName": "deadline",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 44143,
                      "src": "4327:16:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "expression": {
                        "id": 42218,
                        "name": "block",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -4,
                        "src": "4347:5:55",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_block",
                          "typeString": "block"
                        }
                      },
                      "id": 42219,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4353:9:55",
                      "memberName": "timestamp",
                      "nodeType": "MemberAccess",
                      "src": "4347:15:55",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4327:35:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 42225,
                  "nodeType": "IfStatement",
                  "src": "4323:100:55",
                  "trueBody": {
                    "id": 42224,
                    "nodeType": "Block",
                    "src": "4364:59:55",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 42221,
                            "name": "BondedResponseModule_InvalidRequest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44133,
                            "src": "4379:35:55",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 42222,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4379:37:55",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 42223,
                        "nodeType": "RevertStatement",
                        "src": "4372:44:55"
                      }
                    ]
                  }
                }
              ]
            },
            "baseFunctions": [
              97
            ],
            "documentation": {
              "id": 42198,
              "nodeType": "StructuredDocumentation",
              "src": "4131:22:55",
              "text": "@inheritdoc Module"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_afterSetupRequest",
            "nameLocation": "4165:18:55",
            "overrides": {
              "id": 42204,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4229:8:55"
            },
            "parameters": {
              "id": 42203,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42200,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 42227,
                  "src": "4184:7:55",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42199,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4184:7:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42202,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "4208:5:55",
                  "nodeType": "VariableDeclaration",
                  "scope": 42227,
                  "src": "4193:20:55",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 42201,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4193:5:55",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4183:31:55"
            },
            "returnParameters": {
              "id": 42205,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4238:0:55"
            },
            "scope": 42228,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 41885,
              "name": "Module",
              "nameLocations": [
                "440:6:55"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 98,
              "src": "440:6:55"
            },
            "id": 41886,
            "nodeType": "InheritanceSpecifier",
            "src": "440:6:55"
          },
          {
            "baseName": {
              "id": 41887,
              "name": "IBondedResponseModule",
              "nameLocations": [
                "448:21:55"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 44189,
              "src": "448:21:55"
            },
            "id": 41888,
            "nodeType": "InheritanceSpecifier",
            "src": "448:21:55"
          }
        ],
        "canonicalName": "BondedResponseModule",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          42228,
          44189,
          2434,
          98,
          1782
        ],
        "name": "BondedResponseModule",
        "nameLocation": "416:20:55",
        "scope": 42229,
        "usedErrors": [
          1745,
          44121,
          44124,
          44127,
          44130,
          44133
        ]
      }
    ],
    "license": "MIT"
  },
  "id": 55
}