{
  "contractName": "PaymentExitGame",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint160[]",
          "name": "exitIds",
          "type": "uint160[]"
        }
      ],
      "name": "standardExits",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "exitable",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "utxoPos",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "outputId",
              "type": "bytes32"
            },
            {
              "internalType": "address payable",
              "name": "exitTarget",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "bondSize",
              "type": "uint256"
            }
          ],
          "internalType": "struct PaymentExitDataModel.StandardExit[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint128",
          "name": "newBondSize",
          "type": "uint128"
        }
      ],
      "name": "updateStartStandardExitBondSize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "inFlightTx",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "inFlightTxInclusionProof",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "outputUtxoPos",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "challengingTx",
              "type": "bytes"
            },
            {
              "internalType": "uint16",
              "name": "challengingTxInputIndex",
              "type": "uint16"
            },
            {
              "internalType": "bytes",
              "name": "challengingTxWitness",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "senderData",
              "type": "bytes32"
            }
          ],
          "internalType": "struct PaymentInFlightExitRouterArgs.ChallengeOutputSpent",
          "name": "args",
          "type": "tuple"
        }
      ],
      "name": "challengeInFlightExitOutputSpent",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint128",
          "name": "newBondSize",
          "type": "uint128"
        }
      ],
      "name": "updatePiggybackBondSize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes",
          "name": "inFlightTx",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "inFlightTxPos",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "inFlightTxInclusionProof",
          "type": "bytes"
        }
      ],
      "name": "respondToNonCanonicalChallenge",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "piggybackBondSize",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "inFlightTx",
              "type": "bytes"
            },
            {
              "internalType": "bytes[]",
              "name": "inputTxs",
              "type": "bytes[]"
            },
            {
              "internalType": "uint256[]",
              "name": "inputUtxosPos",
              "type": "uint256[]"
            },
            {
              "internalType": "bytes[]",
              "name": "inputTxsInclusionProofs",
              "type": "bytes[]"
            },
            {
              "internalType": "bytes[]",
              "name": "inFlightTxWitnesses",
              "type": "bytes[]"
            }
          ],
          "internalType": "struct PaymentInFlightExitRouterArgs.StartExitArgs",
          "name": "args",
          "type": "tuple"
        }
      ],
      "name": "startInFlightExit",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "utxoPos",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "rlpOutputTx",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "outputTxInclusionProof",
              "type": "bytes"
            }
          ],
          "internalType": "struct PaymentStandardExitRouterArgs.StartStandardExitArgs",
          "name": "args",
          "type": "tuple"
        }
      ],
      "name": "startStandardExit",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "startIFEBondSize",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "INITIAL_PB_BOND_SIZE",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "BOND_LOWER_BOUND_DIVISOR",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "BOND_UPPER_BOUND_MULTIPLIER",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "inFlightTx",
              "type": "bytes"
            },
            {
              "internalType": "uint16",
              "name": "outputIndex",
              "type": "uint16"
            }
          ],
          "internalType": "struct PaymentInFlightExitRouterArgs.PiggybackInFlightExitOnOutputArgs",
          "name": "args",
          "type": "tuple"
        }
      ],
      "name": "piggybackInFlightExitOnOutput",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint128",
          "name": "newBondSize",
          "type": "uint128"
        }
      ],
      "name": "updateStartIFEBondSize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint160",
          "name": "exitId",
          "type": "uint160"
        }
      ],
      "name": "deleteNonPiggybackedInFlightExit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "inFlightTx",
              "type": "bytes"
            },
            {
              "internalType": "uint16",
              "name": "inFlightTxInputIndex",
              "type": "uint16"
            },
            {
              "internalType": "bytes",
              "name": "challengingTx",
              "type": "bytes"
            },
            {
              "internalType": "uint16",
              "name": "challengingTxInputIndex",
              "type": "uint16"
            },
            {
              "internalType": "bytes",
              "name": "challengingTxWitness",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "inputTx",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "inputUtxoPos",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "senderData",
              "type": "bytes32"
            }
          ],
          "internalType": "struct PaymentInFlightExitRouterArgs.ChallengeInputSpentArgs",
          "name": "args",
          "type": "tuple"
        }
      ],
      "name": "challengeInFlightExitInputSpent",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "INITIAL_BOND_SIZE",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "INITIAL_IFE_BOND_SIZE",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint160[]",
          "name": "exitIds",
          "type": "uint160[]"
        }
      ],
      "name": "inFlightExits",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "isCanonical",
              "type": "bool"
            },
            {
              "internalType": "uint64",
              "name": "exitStartTimestamp",
              "type": "uint64"
            },
            {
              "internalType": "uint256",
              "name": "exitMap",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "position",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "outputId",
                  "type": "bytes32"
                },
                {
                  "internalType": "address payable",
                  "name": "exitTarget",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "piggybackBondSize",
                  "type": "uint256"
                }
              ],
              "internalType": "struct PaymentExitDataModel.WithdrawData[4]",
              "name": "inputs",
              "type": "tuple[4]"
            },
            {
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "outputId",
                  "type": "bytes32"
                },
                {
                  "internalType": "address payable",
                  "name": "exitTarget",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "piggybackBondSize",
                  "type": "uint256"
                }
              ],
              "internalType": "struct PaymentExitDataModel.WithdrawData[4]",
              "name": "outputs",
              "type": "tuple[4]"
            },
            {
              "internalType": "address payable",
              "name": "bondOwner",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "bondSize",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "oldestCompetitorPosition",
              "type": "uint256"
            }
          ],
          "internalType": "struct PaymentExitDataModel.InFlightExit[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint160",
              "name": "exitId",
              "type": "uint160"
            },
            {
              "internalType": "bytes",
              "name": "exitingTx",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "challengeTx",
              "type": "bytes"
            },
            {
              "internalType": "uint16",
              "name": "inputIndex",
              "type": "uint16"
            },
            {
              "internalType": "bytes",
              "name": "witness",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "senderData",
              "type": "bytes32"
            }
          ],
          "internalType": "struct PaymentStandardExitRouterArgs.ChallengeStandardExitArgs",
          "name": "args",
          "type": "tuple"
        }
      ],
      "name": "challengeStandardExit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "inFlightTx",
              "type": "bytes"
            },
            {
              "internalType": "uint16",
              "name": "inputIndex",
              "type": "uint16"
            }
          ],
          "internalType": "struct PaymentInFlightExitRouterArgs.PiggybackInFlightExitOnInputArgs",
          "name": "args",
          "type": "tuple"
        }
      ],
      "name": "piggybackInFlightExitOnInput",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "inputTx",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "inputUtxoPos",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "inFlightTx",
              "type": "bytes"
            },
            {
              "internalType": "uint16",
              "name": "inFlightTxInputIndex",
              "type": "uint16"
            },
            {
              "internalType": "bytes",
              "name": "competingTx",
              "type": "bytes"
            },
            {
              "internalType": "uint16",
              "name": "competingTxInputIndex",
              "type": "uint16"
            },
            {
              "internalType": "uint256",
              "name": "competingTxPos",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "competingTxInclusionProof",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "competingTxWitness",
              "type": "bytes"
            }
          ],
          "internalType": "struct PaymentInFlightExitRouterArgs.ChallengeCanonicityArgs",
          "name": "args",
          "type": "tuple"
        }
      ],
      "name": "challengeInFlightExitNotCanonical",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "startStandardExitBondSize",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "contract PlasmaFramework",
              "name": "framework",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "ethVaultId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "erc20VaultId",
              "type": "uint256"
            },
            {
              "internalType": "contract SpendingConditionRegistry",
              "name": "spendingConditionRegistry",
              "type": "address"
            },
            {
              "internalType": "contract IStateTransitionVerifier",
              "name": "stateTransitionVerifier",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "supportTxType",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "safeGasStipend",
              "type": "uint256"
            }
          ],
          "internalType": "struct PaymentExitGameArgs.Args",
          "name": "args",
          "type": "tuple"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "bondSize",
          "type": "uint128"
        }
      ],
      "name": "IFEBondUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "bondSize",
          "type": "uint128"
        }
      ],
      "name": "PiggybackBondUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "initiator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "txHash",
          "type": "bytes32"
        }
      ],
      "name": "InFlightExitStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "exitTarget",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "txHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "inputIndex",
          "type": "uint16"
        }
      ],
      "name": "InFlightExitInputPiggybacked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint160",
          "name": "exitId",
          "type": "uint160"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "InFlightExitOmitted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "InFlightBondReturnFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint160",
          "name": "exitId",
          "type": "uint160"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "outputIndex",
          "type": "uint16"
        }
      ],
      "name": "InFlightExitOutputWithdrawn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint160",
          "name": "exitId",
          "type": "uint160"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "inputIndex",
          "type": "uint16"
        }
      ],
      "name": "InFlightExitInputWithdrawn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "exitTarget",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "txHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "outputIndex",
          "type": "uint16"
        }
      ],
      "name": "InFlightExitOutputPiggybacked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "challenger",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "txHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "challengeTxPosition",
          "type": "uint256"
        }
      ],
      "name": "InFlightExitChallenged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "challenger",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "txHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "challengeTxPosition",
          "type": "uint256"
        }
      ],
      "name": "InFlightExitChallengeResponded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "challenger",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "txHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "inputIndex",
          "type": "uint16"
        }
      ],
      "name": "InFlightExitInputBlocked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "challenger",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "txHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "outputIndex",
          "type": "uint16"
        }
      ],
      "name": "InFlightExitOutputBlocked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint160",
          "name": "exitId",
          "type": "uint160"
        }
      ],
      "name": "InFlightExitDeleted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "bondSize",
          "type": "uint128"
        }
      ],
      "name": "StandardExitBondUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint160",
          "name": "exitId",
          "type": "uint160"
        }
      ],
      "name": "ExitStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "utxoPos",
          "type": "uint256"
        }
      ],
      "name": "ExitChallenged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint160",
          "name": "exitId",
          "type": "uint160"
        }
      ],
      "name": "ExitOmitted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint160",
          "name": "exitId",
          "type": "uint160"
        }
      ],
      "name": "ExitFinalized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "BondReturnFailed",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint160",
          "name": "exitId",
          "type": "uint160"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "processExit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bool",
          "name": "_isDeposit",
          "type": "bool"
        },
        {
          "internalType": "bytes",
          "name": "_txBytes",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "_utxoPos",
          "type": "uint256"
        }
      ],
      "name": "getStandardExitId",
      "outputs": [
        {
          "internalType": "uint160",
          "name": "",
          "type": "uint160"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_txBytes",
          "type": "bytes"
        }
      ],
      "name": "getInFlightExitId",
      "outputs": [
        {
          "internalType": "uint160",
          "name": "",
          "type": "uint160"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint160[]\",\"name\":\"exitIds\",\"type\":\"uint160[]\"}],\"name\":\"standardExits\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"exitable\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"utxoPos\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"outputId\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"exitTarget\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bondSize\",\"type\":\"uint256\"}],\"internalType\":\"struct PaymentExitDataModel.StandardExit[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"newBondSize\",\"type\":\"uint128\"}],\"name\":\"updateStartStandardExitBondSize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"inFlightTx\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"inFlightTxInclusionProof\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"outputUtxoPos\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"challengingTx\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"challengingTxInputIndex\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"challengingTxWitness\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"senderData\",\"type\":\"bytes32\"}],\"internalType\":\"struct PaymentInFlightExitRouterArgs.ChallengeOutputSpent\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"challengeInFlightExitOutputSpent\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"newBondSize\",\"type\":\"uint128\"}],\"name\":\"updatePiggybackBondSize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inFlightTx\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"inFlightTxPos\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"inFlightTxInclusionProof\",\"type\":\"bytes\"}],\"name\":\"respondToNonCanonicalChallenge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"piggybackBondSize\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"inFlightTx\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"inputTxs\",\"type\":\"bytes[]\"},{\"internalType\":\"uint256[]\",\"name\":\"inputUtxosPos\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"inputTxsInclusionProofs\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes[]\",\"name\":\"inFlightTxWitnesses\",\"type\":\"bytes[]\"}],\"internalType\":\"struct PaymentInFlightExitRouterArgs.StartExitArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"startInFlightExit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"exitId\",\"type\":\"uint160\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"processExit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"utxoPos\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"rlpOutputTx\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"outputTxInclusionProof\",\"type\":\"bytes\"}],\"internalType\":\"struct PaymentStandardExitRouterArgs.StartStandardExitArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"startStandardExit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"startIFEBondSize\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"INITIAL_PB_BOND_SIZE\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_txBytes\",\"type\":\"bytes\"}],\"name\":\"getInFlightExitId\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"\",\"type\":\"uint160\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"BOND_LOWER_BOUND_DIVISOR\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"BOND_UPPER_BOUND_MULTIPLIER\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"inFlightTx\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"outputIndex\",\"type\":\"uint16\"}],\"internalType\":\"struct PaymentInFlightExitRouterArgs.PiggybackInFlightExitOnOutputArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"piggybackInFlightExitOnOutput\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"newBondSize\",\"type\":\"uint128\"}],\"name\":\"updateStartIFEBondSize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_isDeposit\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_txBytes\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_utxoPos\",\"type\":\"uint256\"}],\"name\":\"getStandardExitId\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"\",\"type\":\"uint160\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"exitId\",\"type\":\"uint160\"}],\"name\":\"deleteNonPiggybackedInFlightExit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"inFlightTx\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"inFlightTxInputIndex\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"challengingTx\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"challengingTxInputIndex\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"challengingTxWitness\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"inputTx\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"inputUtxoPos\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"senderData\",\"type\":\"bytes32\"}],\"internalType\":\"struct PaymentInFlightExitRouterArgs.ChallengeInputSpentArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"challengeInFlightExitInputSpent\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"INITIAL_BOND_SIZE\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"INITIAL_IFE_BOND_SIZE\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint160[]\",\"name\":\"exitIds\",\"type\":\"uint160[]\"}],\"name\":\"inFlightExits\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isCanonical\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"exitStartTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"exitMap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"position\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"outputId\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"exitTarget\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"piggybackBondSize\",\"type\":\"uint256\"}],\"internalType\":\"struct PaymentExitDataModel.WithdrawData[4]\",\"name\":\"inputs\",\"type\":\"tuple[4]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"outputId\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"exitTarget\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"piggybackBondSize\",\"type\":\"uint256\"}],\"internalType\":\"struct PaymentExitDataModel.WithdrawData[4]\",\"name\":\"outputs\",\"type\":\"tuple[4]\"},{\"internalType\":\"address payable\",\"name\":\"bondOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bondSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldestCompetitorPosition\",\"type\":\"uint256\"}],\"internalType\":\"struct PaymentExitDataModel.InFlightExit[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint160\",\"name\":\"exitId\",\"type\":\"uint160\"},{\"internalType\":\"bytes\",\"name\":\"exitingTx\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"challengeTx\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"inputIndex\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"witness\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"senderData\",\"type\":\"bytes32\"}],\"internalType\":\"struct PaymentStandardExitRouterArgs.ChallengeStandardExitArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"challengeStandardExit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"inFlightTx\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"inputIndex\",\"type\":\"uint16\"}],\"internalType\":\"struct PaymentInFlightExitRouterArgs.PiggybackInFlightExitOnInputArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"piggybackInFlightExitOnInput\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"inputTx\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"inputUtxoPos\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"inFlightTx\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"inFlightTxInputIndex\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"competingTx\",\"type\":\"bytes\"},{\"internalType\":\"uint16\",\"name\":\"competingTxInputIndex\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"competingTxPos\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"competingTxInclusionProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"competingTxWitness\",\"type\":\"bytes\"}],\"internalType\":\"struct PaymentInFlightExitRouterArgs.ChallengeCanonicityArgs\",\"name\":\"args\",\"type\":\"tuple\"}],\"name\":\"challengeInFlightExitNotCanonical\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"startStandardExitBondSize\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"contract PlasmaFramework\",\"name\":\"framework\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ethVaultId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"erc20VaultId\",\"type\":\"uint256\"},{\"internalType\":\"contract SpendingConditionRegistry\",\"name\":\"spendingConditionRegistry\",\"type\":\"address\"},{\"internalType\":\"contract IStateTransitionVerifier\",\"name\":\"stateTransitionVerifier\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supportTxType\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"safeGasStipend\",\"type\":\"uint256\"}],\"internalType\":\"struct PaymentExitGameArgs.Args\",\"name\":\"args\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"bondSize\",\"type\":\"uint128\"}],\"name\":\"IFEBondUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"bondSize\",\"type\":\"uint128\"}],\"name\":\"PiggybackBondUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"InFlightExitStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"exitTarget\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"inputIndex\",\"type\":\"uint16\"}],\"name\":\"InFlightExitInputPiggybacked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint160\",\"name\":\"exitId\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"InFlightExitOmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"InFlightBondReturnFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint160\",\"name\":\"exitId\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"outputIndex\",\"type\":\"uint16\"}],\"name\":\"InFlightExitOutputWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint160\",\"name\":\"exitId\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"inputIndex\",\"type\":\"uint16\"}],\"name\":\"InFlightExitInputWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"exitTarget\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"outputIndex\",\"type\":\"uint16\"}],\"name\":\"InFlightExitOutputPiggybacked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeTxPosition\",\"type\":\"uint256\"}],\"name\":\"InFlightExitChallenged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"challengeTxPosition\",\"type\":\"uint256\"}],\"name\":\"InFlightExitChallengeResponded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"inputIndex\",\"type\":\"uint16\"}],\"name\":\"InFlightExitInputBlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"challenger\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"outputIndex\",\"type\":\"uint16\"}],\"name\":\"InFlightExitOutputBlocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint160\",\"name\":\"exitId\",\"type\":\"uint160\"}],\"name\":\"InFlightExitDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"bondSize\",\"type\":\"uint128\"}],\"name\":\"StandardExitBondUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"exitId\",\"type\":\"uint160\"}],\"name\":\"ExitStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"utxoPos\",\"type\":\"uint256\"}],\"name\":\"ExitChallenged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint160\",\"name\":\"exitId\",\"type\":\"uint160\"}],\"name\":\"ExitOmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint160\",\"name\":\"exitId\",\"type\":\"uint160\"}],\"name\":\"ExitFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BondReturnFailed\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"challengeInFlightExitInputSpent((bytes,uint16,bytes,uint16,bytes,bytes,uint256,bytes32))\":{\"params\":{\"args\":\"Argument data to challenge (see also struct 'ChallengeInputSpentArgs')\"}},\"challengeInFlightExitNotCanonical((bytes,uint256,bytes,uint16,bytes,uint16,uint256,bytes,bytes))\":{\"params\":{\"args\":\"Input argument data to challenge (see also struct 'ChallengeCanonicityArgs')\"}},\"challengeInFlightExitOutputSpent((bytes,bytes,uint256,bytes,uint16,bytes,bytes32))\":{\"params\":{\"args\":\"Argument data to challenge (see also struct 'ChallengeOutputSpent')\"}},\"constructor\":{\"details\":\"use struct PaymentExitGameArgs to avoid stack too deep compilation error.\"},\"deleteNonPiggybackedInFlightExit(uint160)\":{\"details\":\"Since IFE is enqueued during piggyback, a non-piggybacked IFE means that it will never be processed.     This means that the IFE bond will never be returned.     see: https://github.com/omisego/plasma-contracts/issues/440\",\"params\":{\"exitId\":\"The exitId of the in-flight exit\"}},\"inFlightExits(uint160[])\":{\"params\":{\"exitIds\":\"The exit IDs of the in-flight exits\"}},\"piggybackInFlightExitOnInput((bytes,uint16))\":{\"params\":{\"args\":\"Input argument data to piggyback (see also struct 'PiggybackInFlightExitOnInputArgs')\"}},\"piggybackInFlightExitOnOutput((bytes,uint16))\":{\"params\":{\"args\":\"Input argument data to piggyback (see also struct 'PiggybackInFlightExitOnOutputArgs')\"}},\"processExit(uint160,uint256,address)\":{\"params\":{\"exitId\":\"The exit ID\",\"token\":\"Token (ERC20 address or address(0) for ETH) of the exiting output\"}},\"respondToNonCanonicalChallenge(bytes,uint256,bytes)\":{\"params\":{\"inFlightTx\":\"The RLP-encoded in-flight transaction\",\"inFlightTxInclusionProof\":\"Proof that the in-flight exiting transaction is included in a Plasma block\",\"inFlightTxPos\":\"The position of the in-flight exiting transaction. The output index within the position is unused and should be set to 0\"}},\"standardExits(uint160[])\":{\"params\":{\"exitIds\":\"Exit IDs of the standard exits\"}},\"startInFlightExit((bytes,bytes[],uint256[],bytes[],bytes[]))\":{\"params\":{\"args\":\"Input argument data to challenge (see also struct 'StartExitArgs')\"}},\"updatePiggybackBondSize(uint128)\":{\"params\":{\"newBondSize\":\"The new bond size\"}},\"updateStartIFEBondSize(uint128)\":{\"params\":{\"newBondSize\":\"The new bond size\"}},\"updateStartStandardExitBondSize(uint128)\":{\"params\":{\"newBondSize\":\"The new bond size\"}}}},\"userdoc\":{\"methods\":{\"challengeInFlightExitInputSpent((bytes,uint16,bytes,uint16,bytes,bytes,uint256,bytes32))\":{\"notice\":\"Challenges an exit from in-flight transaction input\"},\"challengeInFlightExitNotCanonical((bytes,uint256,bytes,uint16,bytes,uint16,uint256,bytes,bytes))\":{\"notice\":\"Challenges an in-flight exit to be non-canonical\"},\"challengeInFlightExitOutputSpent((bytes,bytes,uint256,bytes,uint16,bytes,bytes32))\":{\"notice\":\"Challenges an exit from in-flight transaction output\"},\"challengeStandardExit((uint160,bytes,bytes,uint16,bytes,bytes32))\":{\"notice\":\"Challenge a standard exit by showing the exiting output was spent\"},\"deleteNonPiggybackedInFlightExit(uint160)\":{\"notice\":\"Deletes in-flight exit if the first phase has passed and not being piggybacked\"},\"getInFlightExitId(bytes)\":{\"notice\":\"Helper function to compute the in-flight exit ID\"},\"getStandardExitId(bool,bytes,uint256)\":{\"notice\":\"Helper function to compute the standard exit ID\"},\"inFlightExits(uint160[])\":{\"notice\":\"Getter functions to retrieve in-flight exit data of the PaymentExitGame\"},\"piggybackBondSize()\":{\"notice\":\"Retrieves the piggyback bond size\"},\"piggybackInFlightExitOnInput((bytes,uint16))\":{\"notice\":\"Piggyback on an input of an in-flight exiting tx. Processed only if the in-flight exit is non-canonical.\"},\"piggybackInFlightExitOnOutput((bytes,uint16))\":{\"notice\":\"Piggyback on an output of an in-flight exiting tx. Processed only if the in-flight exit is canonical.\"},\"processExit(uint160,uint256,address)\":{\"notice\":\"Callback processes exit function for the PlasmaFramework to call\"},\"respondToNonCanonicalChallenge(bytes,uint256,bytes)\":{\"notice\":\"Respond to a non-canonical challenge by providing its position and by proving its correctness\"},\"standardExits(uint160[])\":{\"notice\":\"Getter retrieves standard exit data of the PaymentExitGame\"},\"startIFEBondSize()\":{\"notice\":\"Retrieves the in-flight exit bond size\"},\"startInFlightExit((bytes,bytes[],uint256[],bytes[],bytes[]))\":{\"notice\":\"Starts withdrawal from a transaction that may be in-flight\"},\"startStandardExit((uint256,bytes,bytes))\":{\"notice\":\"Starts a standard exit of a given output, using output-age priority\"},\"startStandardExitBondSize()\":{\"notice\":\"Retrieves the standard exit bond size\"},\"updatePiggybackBondSize(uint128)\":{\"notice\":\"Updates the piggyback bond size, taking two days to become effective\"},\"updateStartIFEBondSize(uint128)\":{\"notice\":\"Updates the in-flight exit bond size, taking two days to become effective.\"},\"updateStartStandardExitBondSize(uint128)\":{\"notice\":\"Updates the standard exit bond size, taking two days to become effective\"}},\"notice\":\"The exit game contract implementation for Payment Transaction\"}},\"settings\":{\"compilationTarget\":{\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/PaymentExitGame.sol\":\"PaymentExitGame\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/interfaces/ISpendingCondition.sol\":{\"keccak256\":\"0xb8b546d44dc9fd210e4f3b2d5adbad81a2c0f1d39ac6646ecb1d90a3f8204473\",\"urls\":[\"bzz-raw://a6f5211cd589f7d9d70ad0f6e2ccd62bf2dcfe6883b91318b2169be107047ae1\",\"dweb:/ipfs/QmdGFznAejCmEdELxR3Rb66vLuzo7NjZs7jcwFfu2CKu2V\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/interfaces/IStateTransitionVerifier.sol\":{\"keccak256\":\"0xf38736d4921d3b8a29c5e95438ba4b70125ef61733820af30d2c27c5198bdbb4\",\"urls\":[\"bzz-raw://4d55cff362b0df5bd11685359061b3a28b915d3f0e0e36eb20d7a32adb8afe67\",\"dweb:/ipfs/QmP4Y51MzAeZT3dymbKrqZDJisdEaCK75ghLxS9MfVbJX8\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/PaymentExitDataModel.sol\":{\"keccak256\":\"0xd4269d4c4a2cee7e70affd8aac5d413ef7e3171baad504c9f9554c5f87b9ce3b\",\"urls\":[\"bzz-raw://c4ef525a4c6be0eb34c86ba87aff011461cf5552d981a93207122850532641fb\",\"dweb:/ipfs/QmYcxEMctRHeu1e94m6yF1RFbm3faTjFWKtJgb1xpeVh3V\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/PaymentExitGame.sol\":{\"keccak256\":\"0x92f659baff06f53e06a2018611f3389eff52f90f82069129e67a078bd537284e\",\"urls\":[\"bzz-raw://7f71ef17e07b4ca28c8b144aa990072346989dd4f0cc4c85ff44fa11ae9ae925\",\"dweb:/ipfs/QmagsE49jnfUhcjZV7qVkSXkDumn5cgv8rpGaz5vevEigj\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/PaymentExitGameArgs.sol\":{\"keccak256\":\"0x41ba4f61cb6f94f17b4dc23141e84509b77828321fb649155b4a6d59086b6cfc\",\"urls\":[\"bzz-raw://31ac6461e133455974644253db2da44079f925186f6279e179334fb74f0898e7\",\"dweb:/ipfs/QmaUamkHyFG34MEqiDBZWrgVQkW2c1T6DCSerWWDJ76c8q\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/PaymentInFlightExitModelUtils.sol\":{\"keccak256\":\"0x125db4317e14f203a9519d76c7190c773df8d87c305fba75cb7ce7b168a453f2\",\"urls\":[\"bzz-raw://32c6f2bf83ff3355a4b3cd34f8339abcc1f6b8a4f8ecc565c8eed3e87e2603ce\",\"dweb:/ipfs/QmS8LN4kfiepg1UgoxuTgiuvgMky6Rp1MBESFdKNbq18cD\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/controllers/PaymentChallengeIFEInputSpent.sol\":{\"keccak256\":\"0x7e78dee3abef998c752cf0c1366105b1584aef9a188fc7454cd43032d5a053c7\",\"urls\":[\"bzz-raw://892832dfb8ba2b38fb2710de0e9023af9afd350cb34c856a9f34b75b5a487e9f\",\"dweb:/ipfs/QmYJHw6LfyiTbBmqQjau4rn39iR99hbbb8tmToAuicMVc3\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/controllers/PaymentChallengeIFENotCanonical.sol\":{\"keccak256\":\"0x96bab5dccc7d880e492b90cd85e96439db8241110e857144ee9c303e37abb2e6\",\"urls\":[\"bzz-raw://a6a2128d1d2de9bb6fd9a66118f2dccb366deec98200de044a71e2467f668102\",\"dweb:/ipfs/QmcbReoozyNLHYSJweRXiYdVcpDaTwa37fjqbSKRWwgtur\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/controllers/PaymentChallengeIFEOutputSpent.sol\":{\"keccak256\":\"0x28aed52bfc7e6569d67fed854b5e38a6834595dc2b299278dafa130d2cf68848\",\"urls\":[\"bzz-raw://1adcbf48b9878b9bb1002b4977fa473cde7a9b04b61ba033bfded5df762fc49b\",\"dweb:/ipfs/QmRpi49hZbc5LiVnxbJ5aqSPwhjHxyf2ocbzFSsc3gadmX\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/controllers/PaymentChallengeStandardExit.sol\":{\"keccak256\":\"0x8053b8b6bab07c7a8277103d884e0572edf46fd8c6e6943f432c8faf969a64ca\",\"urls\":[\"bzz-raw://0e34785611549bb3529b20ea690d89d606b04a4b2f3f763be3fda30e21172adf\",\"dweb:/ipfs/QmNfcGNk33fNfchyFqUrrGxzwg1KKMj8XdLYnvmAPNbfBu\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/controllers/PaymentDeleteInFlightExit.sol\":{\"keccak256\":\"0xf81268bc7d11715baf0ea94d9bb4d18f1228d142fa717079e75f343b36344d90\",\"urls\":[\"bzz-raw://916abd6edc260f70db4374e60e4ef37d5bf7cb5ce5837a843d64f9a795df39ea\",\"dweb:/ipfs/QmR8zE5bVTUMD1EUWRuL8ctk87Ya2uZdf6cki7stbqBvRc\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/controllers/PaymentPiggybackInFlightExit.sol\":{\"keccak256\":\"0xa7e4d94574e718448e1d0332029578920086642d8db52703e96d51b5d6c7eff3\",\"urls\":[\"bzz-raw://f9a90f6d3ac91a28667cbddaf707d8e6572da5a1378fb57c770e9c1795c77d78\",\"dweb:/ipfs/QmSANmSQHGRdekHQU3f1jEesAEoqB5JgQvyQW9roQDthrM\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/controllers/PaymentProcessInFlightExit.sol\":{\"keccak256\":\"0xd708f992287bd03384b8c8599d1e733dc76485d80c49da77eb2864ca3e9b93ed\",\"urls\":[\"bzz-raw://f1b1ce719126ae4426023aed26d26108ac21353dda910c479e86ae1d726b09b1\",\"dweb:/ipfs/Qmb98qec3498iD6WBgpfkzyBvxaqvKLDX7G6AqUa7wFuMg\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/controllers/PaymentProcessStandardExit.sol\":{\"keccak256\":\"0xfc0c6330001caf7a9f1217ebd4b594f343cbebc63320ae8929441adc53742dc3\",\"urls\":[\"bzz-raw://2a20294e28bb6ce4ad09104d6dfba228837074f9d11faee717f7661c74c50ced\",\"dweb:/ipfs/QmSK3GuzAU6fam79r3d8hTKE5KJrb3GjQamkAoxZTkBK5m\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/controllers/PaymentStartInFlightExit.sol\":{\"keccak256\":\"0xeb1766ce3cf39061b9740f0bf8ef7d57495daee0c48954091f2b74dccde52db7\",\"urls\":[\"bzz-raw://aa70b67c68a156b6008ae817ee83d71ae92238374967f34c333bfdf52b07fac3\",\"dweb:/ipfs/QmP6mNjs5QLMqMztpeQeD9p5Bm1XkBZwFjQckRs5EoHQVc\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/controllers/PaymentStartStandardExit.sol\":{\"keccak256\":\"0xa1c1eeeb05de009768e7021b39f2569ad856da72bfe9ab31a7de0c39d0585a27\",\"urls\":[\"bzz-raw://866589211d908b4424de6325d72d1167ad80d1914ae690d0a8b5f2be3485f8bd\",\"dweb:/ipfs/QmSMfcoiCJtDtbzgFkzgEwqnR2xSWEctgQC9Er32SbE3gN\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/routers/PaymentInFlightExitRouter.sol\":{\"keccak256\":\"0x14d62e96c035925da504e8aa682a37da8959036535b9dbf6ba99ac8ba0bf165a\",\"urls\":[\"bzz-raw://b1e5ce01a234452be671c37b26e7e5e88bce824a00e79aca68674901dfb21fe7\",\"dweb:/ipfs/QmeoYJqKpktRyhHKEd1HsSfALM7qoms9g6mvUUFhheWHcz\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/routers/PaymentInFlightExitRouterArgs.sol\":{\"keccak256\":\"0x02f6d1cb1b9ddb30014d03e3a5fa08843583043e40d58a95e566429d93c420eb\",\"urls\":[\"bzz-raw://3a442e9100076555d32b333fec5ec6953a235bb8c5b5a2b1397adda9b50aa829\",\"dweb:/ipfs/QmZRTgLiw9rzg2ZCBAW7jW8dNnQS94jWyoDhQaQHKAfWte\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/routers/PaymentStandardExitRouter.sol\":{\"keccak256\":\"0x9c0f7caa802074f553d1a229c021dfdfd6903a65c8e358ecdbbabcedf9940bc2\",\"urls\":[\"bzz-raw://ac7521e969912fd317b1d4473fe0ea892ac86598a4e5042f385c142bc5b8d7f0\",\"dweb:/ipfs/QmdjRhvAQTEpD45TLCbvtRxhcMSVY43QpNojjeGiHAGbVn\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/routers/PaymentStandardExitRouterArgs.sol\":{\"keccak256\":\"0xda44c711f16d2fb01fe8a0bd577b29e83860a81e92ab70d1fcea3708ee155c5c\",\"urls\":[\"bzz-raw://88e9e90a66830596d5dd24d1c0675fe272c1f5d0b0e4e6454f506410e28327d5\",\"dweb:/ipfs/QmaL7acWdk9zfSPdKWvVR1n4U1vBBkN6sBUCMSL3wU9s83\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/registries/SpendingConditionRegistry.sol\":{\"keccak256\":\"0x402d0e1850ccc0f8ef1d9645057346900a7e196e2546f5e6ba063a2afd324783\",\"urls\":[\"bzz-raw://32bfdfb3d47431c7c6d5b1726aa3c19adb3d668d28befcff8595768da387a739\",\"dweb:/ipfs/QmSaK99mby3HvMjcHWxtFcVUVU3RV6zGWLq5q4LwQwjvF1\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/utils/BondSize.sol\":{\"keccak256\":\"0x01a6c7f4282878431d36015eb45bb297e22272097209adbdb0ca093aa4db165d\",\"urls\":[\"bzz-raw://de55716cbd9621997d4b1a4f617fb3eb9886bea77c584d797c40f8aafa49f2e1\",\"dweb:/ipfs/QmYd8daNQ1S36dUucrbjum1V6ASiJb1fRPVKt6GWxNPe7m\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/utils/ExitId.sol\":{\"keccak256\":\"0xcb1b4231fbc55c94e18440d82ce80b9a81b119433f994cee746514a5b32baf62\",\"urls\":[\"bzz-raw://e98a2fb11df53d87125908875e5fbdc7414b79d964163a0e74a5a5726828ed5c\",\"dweb:/ipfs/QmUqdgcUdm79h7zzsWQsPBP3NMRUeSXRa8qeuiopDtBWRS\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/utils/ExitableTimestamp.sol\":{\"keccak256\":\"0xa260a221f3cbfc8c38ffec23a873b9f8e95fbb64fefc976f0d0b3ea2a3c04053\",\"urls\":[\"bzz-raw://9941590544c8d8f5008d202ad6feecca0ba684e7b029d48a1a8feb59fd10fd82\",\"dweb:/ipfs/QmVnR9YfhhGb5aJt9M6AmVP75RrTirDLQxxQftQoCdzgvJ\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/utils/MoreVpFinalization.sol\":{\"keccak256\":\"0xf1975686c18d21ea0401daad5ac9e983f1bb683228df150250ddbb5b89086565\",\"urls\":[\"bzz-raw://531490ead9bdd8403e93c9e1d903b712e9b2b4015e71367e3cdb54c8d7bd6849\",\"dweb:/ipfs/QmZtTffxLdWMqeLmvyPrF3DLXfn3cX9qkC4hUAdKze9D6b\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/utils/OutputId.sol\":{\"keccak256\":\"0xbf5d4a0068f90a05d4add0ba884ea6b44df879e4cde4622be973f1f4e8e0ad74\",\"urls\":[\"bzz-raw://5cc04ede415a3830f89c5398ed8a5206fb22776499bafb0c11be5988177557e9\",\"dweb:/ipfs/QmaUdRb3jRPmzpWj5hTu72nNYkjukE7ppgzj4wx9K92fQ2\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/BlockController.sol\":{\"keccak256\":\"0xac302eceee96e5a83b7fdfb43d23389f516ff4b7322e5e094d7ad0b3be177c0b\",\"urls\":[\"bzz-raw://cf36aec949574838af497c6448000226d20aea4d0a787c746dd10775166df8a3\",\"dweb:/ipfs/QmQvD1DZfeidC1xiC3fnzTbCcgTTG9MuN6NNwKn965bVvC\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/ExitGameController.sol\":{\"keccak256\":\"0x136c47ad99baab47c0a90499bf359706d1d34bb7de8573ce3f2868bf1440acd8\",\"urls\":[\"bzz-raw://d1291a1b667dc916958dd9d0be246fe6e7601bc0c08be6a7e11747214a94ef59\",\"dweb:/ipfs/QmampH1Xg4Z5KzToYR5Sngt36EFL45psZWtdfstSm9AVoS\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/PlasmaFramework.sol\":{\"keccak256\":\"0x4b017fa7cae50fcf79803255fe0ffe8183e8f3934d9ac46a48235986f4714179\",\"urls\":[\"bzz-raw://30974a631b8c13aedea212390fcc1cf75472dc3f49a9c52eb33fc07c04b545e1\",\"dweb:/ipfs/QmT15Bw5NtE7b1RvVcmRXcGkEAL9BpbbgKwMtJBphXTbLd\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/Protocol.sol\":{\"keccak256\":\"0x81e37c136c340d917e370c58894761aee710bbef727414685490e405bc0f18e8\",\"urls\":[\"bzz-raw://7a54192b587531dd1adc33202479142afdf116385bab22daa153b8d4439d7333\",\"dweb:/ipfs/QmT37F3SCsWLf93okFrx1LUUr6c2zXCj28u2sjXXFBef2X\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/interfaces/IExitProcessor.sol\":{\"keccak256\":\"0x93c31f7c8ff69c80bd30f9296a7b2059affedadefc0c2cfb5c992eb1f1885fa2\",\"urls\":[\"bzz-raw://d56cb65fd67b07cec3bb17f48c064df4ea892780bf21d87d717e6581feb92ffd\",\"dweb:/ipfs/QmZZGPdSSN81c2P1CBnrCQD9mRWntPUPUjm4vCgWsBqS14\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/models/BlockModel.sol\":{\"keccak256\":\"0x7d26be621a43e2b8855f6c71f91c886d3b48ed809f421a1eee9c165c803d0cf7\",\"urls\":[\"bzz-raw://850b2acb61d96e9eb09d8bf24617ecf47aa948d6754b2d09d0e0d2b949193a2d\",\"dweb:/ipfs/QmW8yoi4jZxHAJf4bNjtt3nGckaWUEX92ZbgrKpoRHJGRM\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/registries/ExitGameRegistry.sol\":{\"keccak256\":\"0x4695a609c60b6be59bbc49ed6d3b14725bcc2efcecd083f8cabbcd3ddb399e68\",\"urls\":[\"bzz-raw://d31ca9188c426bbb2e8cf0fca61a9d451497408ddb4708cfc78d543b75fcb274\",\"dweb:/ipfs/QmawYeD9CCd5chGoB62zVKpk5Q9zJxhUUGJu7hUaCF5JXM\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/registries/VaultRegistry.sol\":{\"keccak256\":\"0x7786b4b8b043026655fa872f11ec747ef600100cc73da38369e1e2fd5047c95a\",\"urls\":[\"bzz-raw://b957490e53281e516290455b78722627f5536e0bd6b9bc17777f3f7a93ed9b14\",\"dweb:/ipfs/QmbUEwWfkTCSPPNEjAJUEXwgCCY9cBPgAKJagRbYQ3PSLE\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/utils/ExitPriority.sol\":{\"keccak256\":\"0x18a6c6b1f8c072e693d855bc8991ea4c51951f9058fd116253a1b8ccb6fc1647\",\"urls\":[\"bzz-raw://a22420b5f647d6108be8a3de23b5dd561f65b12dd804ead7edf5384407a506f3\",\"dweb:/ipfs/QmTd986YDqtwQ1eXqUP4esUBKxGthieXJWkQTsMJzewXgA\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/utils/PriorityQueue.sol\":{\"keccak256\":\"0xf46de2038d5fbc06f1aba7f36e7e02ead27485044ccf25afc2b9ad84ea705991\",\"urls\":[\"bzz-raw://a23fd7ad08f351743c7599fa546a0b54586e7e319c00c3e9d41c3aa10546ec5d\",\"dweb:/ipfs/QmWH32SoQmhyy7CE8u8g412e1AosogVE3eEBjrAh9MABvb\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/utils/Quarantine.sol\":{\"keccak256\":\"0x1b685ea3de626e3d8961d0e384a67c3e87752874784cc2e59777857d130f2390\",\"urls\":[\"bzz-raw://28c30354aa580476f230c4d8e151d34337b923caabc6bccfe560d75ef37d446e\",\"dweb:/ipfs/Qmf9nCYFBhHDyMgHmxX5pSkqLpqb2W3XffPopdkJTHmnAA\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/transactions/FungibleTokenOutputModel.sol\":{\"keccak256\":\"0xc3ba28ef422e5e69bf45fd19696f15154bc425a8ce203381634e53c7225cfb7a\",\"urls\":[\"bzz-raw://a8abad3a40e7324cac88861fa42eded4a4eb8ba63cebb78e2c515fb1fe522156\",\"dweb:/ipfs/QmeNackaS2epdnrZ9Y3KJgZFUT6QWd4fi7kDcmaEhQKmrd\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/transactions/GenericTransaction.sol\":{\"keccak256\":\"0xde90e8614329838d210c19607920c7332be57982790763884a7ff62511771871\",\"urls\":[\"bzz-raw://85887bc1789f94197c0476e9b3580aab2330f6988623883eaa857e1f5b82f0e5\",\"dweb:/ipfs/QmcNTkDNpibtRGmxWCpNj6n3HLpsAgmiKKQvDZSNJGT4Bg\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/transactions/PaymentTransactionModel.sol\":{\"keccak256\":\"0x24d5374cc8d463974a2dbebaa348f8f762c870e1bf9159920f78dbd3f9c5ab2c\",\"urls\":[\"bzz-raw://8d75bd75739f4df38e95bcc80a87a5f92dc3e66bcd31edbd1683fd528df67d03\",\"dweb:/ipfs/QmYFoc5hmFwPnU9Kdu4ZdEo9Qcvu565o1UoCMcbnbuHcJy\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/Bits.sol\":{\"keccak256\":\"0x8634dbdd911b93b96ffc247db5063fade8f74f519130021b7e71e505135148d8\",\"urls\":[\"bzz-raw://f0dd95b5277522e5604bbf24a6a6955f2e628ca41e137cb8a8a08e6c7312deb8\",\"dweb:/ipfs/QmfW1kxWqjvz57RNGcv9NsY33aWxyVPKQtd3cV4FbiW3sS\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/FailFastReentrancyGuard.sol\":{\"keccak256\":\"0xcbd6934ca4d8f5af83795e6475568d7cd12e822e4ae2c5724da352e245531de9\",\"urls\":[\"bzz-raw://0db25d5aa03db681f2f18ef9be8f858c451684ac0866ebe618ff4700aed54135\",\"dweb:/ipfs/QmXCgKMGq8qxVCUDAiVQeEXvM7AYbwYie8ce1kYCWpbVZg\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/Merkle.sol\":{\"keccak256\":\"0xc9c85f7e0009969fc557bf1a91448451477f69883c7d597da44e5bb0b2ac9242\",\"urls\":[\"bzz-raw://a8362bcf5933531e5d67086413702449fcb986a54b628863af7096c0ee944d92\",\"dweb:/ipfs/QmdMtjvhgP9wUydTo23SqeqxPrbQ3EBtFv61tCifAHtqKJ\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/OnlyFromAddress.sol\":{\"keccak256\":\"0x54d4cb74bf5c448bb383ff4ffce898473739a5ba015e439dae1c092c70df943f\",\"urls\":[\"bzz-raw://5c9efbe363534d6746573b9b0dda687d257272c3ce0123b6a45bc7eef55a40b4\",\"dweb:/ipfs/QmZPLF1bKdU6DAZZcxWfMudUwzeubLxsSk14x8hvUMj15X\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/OnlyWithValue.sol\":{\"keccak256\":\"0x8861c80b27979fd6a3a6fe3d08b8706fd3c556d1c88376a7018b3fb3dea88478\",\"urls\":[\"bzz-raw://d12b78f0ff6494bf93f6e1700ed7f5b1b27a1c963c49b9fed5efab7f6c2224a7\",\"dweb:/ipfs/QmfBNE8v1FpqhQqtWtg8zLP5pbrk1f8TizE3EgEyhbgpot\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/PosLib.sol\":{\"keccak256\":\"0xd47b38ef93cf913b6b7a3bf608dec2c084108d090cc02b222da3d8eb39819d5f\",\"urls\":[\"bzz-raw://c42d551c21adfa400d08108673b29e4bd1eec70aaa469287571071df3f8f0bc1\",\"dweb:/ipfs/Qmepq632azqUDHt5ypVwmkTfeQG8uP1HYw8x1H3Hdg9K6R\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/RLPReader.sol\":{\"keccak256\":\"0x83a578c149e11e4c03d222bc2ae7226f8b448c308b6bf8167b6c53719b68f722\",\"urls\":[\"bzz-raw://792d3afbbc68be381e4981d2f62a5720033967544b5cb750052dc62d273f3587\",\"dweb:/ipfs/QmUemf7AhGu3SWu86NQ6YW2HcNAzQSoT5BpwGqqasFyzH5\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/SafeEthTransfer.sol\":{\"keccak256\":\"0xe707370228eea8c9c613472dd4d44df94ba631892bc74077cf5af24097944aad\",\"urls\":[\"bzz-raw://803b2c876f40f8d8dbcbca8b6cde233d73a98c4d2384c90e259da1c169225de9\",\"dweb:/ipfs/QmZkb1kHBmFb4jGgZepfAJsiZM6beQJiS9x319QZxExiB4\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/Erc20Vault.sol\":{\"keccak256\":\"0x99455fccb574d1f38b9e60f67c34de83d25b8d424f4fea57230a31d2ccbe7b27\",\"urls\":[\"bzz-raw://c8675482faefd4d812c62bbefbafe7d0ead7283235d10be290141e018d4b9024\",\"dweb:/ipfs/QmaNCn1ViB8FV4sCfVgVoLnhqj9GvLUWMQMdFTPc8mZWab\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/EthVault.sol\":{\"keccak256\":\"0x97b047f61e71f24f0febf094358731d4a61e27219c43162776fff4c37d28948f\",\"urls\":[\"bzz-raw://4d8139071bb54c50fea28af039741b9621d7f92ffb689c74ecb105a315555f7e\",\"dweb:/ipfs/QmaHVjgpcqThQ4MtdnEKQ7HECJrRBRaLd24Exa3oKZj8T5\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/Vault.sol\":{\"keccak256\":\"0x2db04ba824e64bb121c7a3733654774198011c3b5a264a068c24146dc359444f\",\"urls\":[\"bzz-raw://c047c9e255606d272deccb90edf90ad3eb1bc65780726a91b16792e8e469f577\",\"dweb:/ipfs/QmP6rJfCpRdgbEDaYMr7wgHxM8PyBSk5KAdtVTbkSRXYyF\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/verifiers/IErc20DepositVerifier.sol\":{\"keccak256\":\"0xb9fdb4eb58e0fdb99331aa279586d9832c235bd4d814eecf522e80df0878e1fa\",\"urls\":[\"bzz-raw://579e40e92506f413c80b229af603a38073bd38ae85cfe0634046b4579b8a43f8\",\"dweb:/ipfs/QmZBnfJT52kV3QzdCoWf3ykbeCnb9E6syVuW1DvnwRjqXC\"]},\"/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/vaults/verifiers/IEthDepositVerifier.sol\":{\"keccak256\":\"0x32e47ecde587dae08d902c081bf9e871137aa5ef049354220cd0360d5deb8e47\",\"urls\":[\"bzz-raw://dfcc1f319dc9131d6a07ae9c867225c66be262e871939d82ab66fd630dd4395f\",\"dweb:/ipfs/Qmef9deSffr7LGBhqqjKSNfqEPNj267WrY2ysXWq9YgZUy\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzz-raw://cd3429aa9a4878dcf6c73faa32c3722f4013d4be012ece543b246faa6b50f55c\",\"dweb:/ipfs/QmS55hgTvNEAKinus19m65CB4wcymN8EiUPFpRx5tYJ1i2\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzz-raw://d0abb99bb8bfc2bc0a89902b8ed1dc0442ad08cc78cee64c291b3df6a27bcccc\",\"dweb:/ipfs/QmP5NaEwZthQeM2ESz4WTT3osrP7jhbvu7ocbttBi2JAw6\"]},\"openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0xf6f89424e17870561dc23c5933c55c5726b66a68d51ad2a2c00c569a5f02f507\",\"urls\":[\"bzz-raw://005657a7ffbf6d12726ac0167b55be965dc473d43f061b605f883a54cc00ab4f\",\"dweb:/ipfs/QmaBzyvDQyNnn6DXQYewEtN9Go85orikSnW9PwNWqUGPEX\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0xf3358e5819ca73357abd6c90bdfffd0474af54364897f6b3e3234c4b71fbe9a1\",\"urls\":[\"bzz-raw://75ae8d04454d1511a2ed986cc8585736f05c5c25280683b3d24712a9f414a4bf\",\"dweb:/ipfs/Qmb3kNCoBUZdah1AgBBD4zMk898j5Qw8ahT1w5cCMYp5Y3\"]}},\"version\":1}",
  "bytecode": "0x60806040523480156200001157600080fd5b5060405162004f3238038062004f328339810160408190526200003491620012a2565b8051601080546001600160a01b0319166001600160a01b03909216918217905560208201516040517f8c64ea4a00000000000000000000000000000000000000000000000000000000815283928392600092638c64ea4a916200009a9160040162001589565b60206040518083038186803b158015620000b357600080fd5b505afa158015620000c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620000ee919081019062001279565b90506001600160a01b0381166200013c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001339062001553565b60405180910390fd5b815160408084015190517f8c64ea4a0000000000000000000000000000000000000000000000000000000081526000926001600160a01b031691638c64ea4a916200018b919060040162001589565b60206040518083038186803b158015620001a457600080fd5b505afa158015620001b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620001df919081019062001279565b90506001600160a01b03811662000224576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001339062001565565b8251602084015160408086015160a087015191517f07a97aa900000000000000000000000000000000000000000000000000000000815273__PaymentStartStandardExit______________946307a97aa9946200028c94309492939192916004016200145b565b60c06040518083038186803b158015620002a557600080fd5b505af4158015620002ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620002e0919081019062001326565b8051600180546001600160a01b039283166001600160a01b031991821617909155602083015160028054919093169116179055604080820151516003556060808301516004908155608084015160055560a09093015160065585519086015160c087015192517f159cde2d00000000000000000000000000000000000000000000000000000000815273__PaymentChallengeStandardExit__________9463159cde2d946200039594939290910162001525565b60606040518083038186803b158015620003ae57600080fd5b505af4158015620003c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620003e99190810190620012c3565b8051600b80546001600160a01b03199081166001600160a01b0393841617909155602080840151600c80548416918516919091179055604093840151600d5583516080810185528751841680825287851682840181905294871695820186905260c089015160609092018290526007805485169091179055600880548416909417909355600980549092169093179055600a556200049e906631bced02db000090600290819062000eed811b6200387417901c565b8051600e80546020808501516001600160801b03199283166001600160801b03958616178516700100000000000000000000000000000000918616820217909355604080860151600f805460608901516080909901519516919096161761ffff60801b191661ffff9687169094029390931761ffff60901b191672010000000000000000000000000000000000009590921694909402179091558551603080546001600160a01b0319166001600160a01b0390921691821790559186015190517f8c64ea4a00000000000000000000000000000000000000000000000000000000815260009550919350638c64ea4a92506200059d9160040162001589565b60206040518083038186803b158015620005b657600080fd5b505afa158015620005cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620005f1919081019062001279565b90506001600160a01b03811662000636576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001339062001553565b815160408084015190517f8c64ea4a0000000000000000000000000000000000000000000000000000000081526000926001600160a01b031691638c64ea4a9162000685919060040162001589565b60206040518083038186803b1580156200069e57600080fd5b505afa158015620006b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620006d9919081019062001279565b90506001600160a01b0381166200071e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001339062001565565b82516060840151608085015160a08601516040517f91ac978000000000000000000000000000000000000000000000000000000000815273__PaymentStartInFlightExit______________946391ac978094620007839491939092600401620014f7565b60a06040518083038186803b1580156200079c57600080fd5b505af4158015620007b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620007d7919081019062001305565b8051601280546001600160a01b03199081166001600160a01b0393841617909155602080840151516013556040808501516014805485169186169190911790556060850151601580549094169416939093179091556080909201516016558451918501518582015191517f32e6d86900000000000000000000000000000000000000000000000000000000815273__PaymentPiggybackInFlightExit__________936332e6d869936200089493919230929190600401620014b1565b60c06040518083038186803b158015620008ad57600080fd5b505af4158015620008c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620008e89190810190620012e4565b8051601780546001600160a01b03199081166001600160a01b0393841617909155602083015151601855604080840151601980549093169316929092179055606080830151601a556080830151601b5560a092830151601c558551908601519286015191517f159cde2d00000000000000000000000000000000000000000000000000000000815273__PaymentChallengeIFENotCanonical_______9363159cde2d936200099b939260040162001525565b60606040518083038186803b158015620009b457600080fd5b505af4158015620009c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620009ef9190810190620012c3565b8051601d80546001600160a01b039283166001600160a01b0319918216179091556020830151601e8054919093169116179055604090810151601f558351606085015160c086015192517f159cde2d00000000000000000000000000000000000000000000000000000000815273__PaymentChallengeIFEInputSpent_________9363159cde2d9362000a8b93909290919060040162001525565b60606040518083038186803b15801562000aa457600080fd5b505af415801562000ab9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000adf9190810190620012c3565b8051602080546001600160a01b03199081166001600160a01b03938416178255818401516021805483169185169190911790556040938401516022558351606080820186528851851680835290890151851682850181905260c08a01519287018390526023805485169092179091556024805490931617909155602555825180840180855287517fd4a2b4ef00000000000000000000000000000000000000000000000000000000909152935190938493169163d4a2b4ef916044808601929190818703018186803b15801562000bb557600080fd5b505afa15801562000bca573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000bf0919081019062001347565b815260c0850180516020928301528251602655918101516027556040805160808101825286516001600160a01b0390811680835287821683860181905291871693830184905294516060909201829052602880546001600160a01b031990811690961790556029805486169091179055602a8054909416909117909255602b9190915562000c95906683734dd0b080009060029081906200387462000eed821b17901c565b8051602c80546020808501516001600160801b03199283166001600160801b039586161785167001000000000000000000000000000000009186168202179093556040850151602d805460608801516080909801519416919095161761ffff60801b191661ffff9586169093029290921761ffff60901b19167201000000000000000000000000000000000000949091169390930292909217905562000d5290666379da05b6000090600290819062000eed811b6200387417901c565b8051602e80546020808501516001600160801b03199283166001600160801b03958616178516700100000000000000000000000000000000918616820217909355604080860151602f80546060808a01516080909a015191909616929097169190911761ffff60801b191661ffff9788169095029490941761ffff60901b191672010000000000000000000000000000000000009690951695909502939093179091558651603180546001600160a01b0319166001600160a01b039283161790559087015183517f8da5cb5b00000000000000000000000000000000000000000000000000000000815293516000975091169450638da5cb5b9350600480840193829003018186803b15801562000e6857600080fd5b505afa15801562000e7d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525062000ea3919081019062001279565b6001600160a01b03161462000ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001339062001577565b5062001622565b62000ef762000f38565b506040805160a0810182526001600160801b03949094168452600060208501526780000000000000009084015261ffff918216606084015216608082015290565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b805162000f7381620015f2565b92915050565b805162000f73816200160c565b600060e0828403121562000f9957600080fd5b62000fa560e062001599565b9050600062000fb5848462000f79565b825250602062000fc8848483016200126c565b602083015250604062000fde848285016200126c565b604083015250606062000ff48482850162000f79565b60608301525060806200100a8482850162000f79565b60808301525060a062001020848285016200126c565b60a08301525060c062001036848285016200126c565b60c08301525092915050565b6000602082840312156200105557600080fd5b62001061602062001599565b905060006200107184846200126c565b82525092915050565b6000606082840312156200108d57600080fd5b62001099606062001599565b90506000620010a9848462000f79565b8252506020620010bc8484830162000f79565b6020830152506040620010d2848285016200126c565b60408301525092915050565b600060c08284031215620010f157600080fd5b620010fd60c062001599565b905060006200110d848462000f79565b8252506020620011208484830162001042565b6020830152506040620011368482850162000f79565b60408301525060606200114c848285016200126c565b606083015250608062001162848285016200126c565b60808301525060a062001178848285016200126c565b60a08301525092915050565b600060a082840312156200119757600080fd5b620011a360a062001599565b90506000620011b3848462000f79565b8252506020620011c68484830162001042565b6020830152506040620011dc8482850162000f79565b6040830152506060620011f28482850162000f79565b606083015250608062001208848285016200126c565b60808301525092915050565b600060c082840312156200122757600080fd5b6200123360c062001599565b9050600062001243848462000f79565b8252506020620012568484830162000f79565b6020830152506040620011368482850162001042565b805162000f738162001617565b6000602082840312156200128c57600080fd5b60006200129a848462000f66565b949350505050565b600060e08284031215620012b557600080fd5b60006200129a848462000f86565b600060608284031215620012d657600080fd5b60006200129a84846200107a565b600060c08284031215620012f757600080fd5b60006200129a8484620010de565b600060a082840312156200131857600080fd5b60006200129a848462001184565b600060c082840312156200133957600080fd5b60006200129a848462001214565b6000602082840312156200135a57600080fd5b60006200129a84846200126c565b6200137381620015d6565b82525050565b600062001388601183620015c0565b7f496e76616c696420455448207661756c74000000000000000000000000000000815260200192915050565b6000620013c3601383620015c0565b7f496e76616c6964204552433230207661756c7400000000000000000000000000815260200192915050565b6000620013fe603b83620015c0565b7f5370656e64696e6720636f6e646974696f6e207265676973747279206f776e6581527f7273686970206e6565647320746f2062652072656e6f756e6365640000000000602082015260400192915050565b6200137381620015ef565b60a081016200146b828862001368565b6200147a602083018762001368565b62001489604083018662001450565b62001498606083018562001450565b620014a7608083018462001450565b9695505050505050565b60808101620014c1828762001368565b620014d0602083018662001368565b620014df604083018562001450565b620014ee606083018462001450565b95945050505050565b6080810162001507828762001368565b62001516602083018662001368565b620014df604083018562001368565b6060810162001535828662001368565b62001544602083018562001368565b6200129a604083018462001450565b6020808252810162000f738162001379565b6020808252810162000f7381620013b4565b6020808252810162000f7381620013ef565b6020810162000f73828462001450565b6040518181016001600160401b0381118282101715620015b857600080fd5b604052919050565b90815260200190565b600062000f7382620015e3565b600062000f7382620015c9565b6001600160a01b031690565b90565b620015fd81620015c9565b81146200160957600080fd5b50565b620015fd81620015d6565b620015fd81620015ef565b61390080620016326000396000f3fe6080604052600436106101815760003560e01c8063a0e403b1116100d1578063c170ecf51161008a578063df2933e211610064578063df2933e214610409578063e5bc60c714610429578063e83622981461043c578063fe32a1241461045c57610181565b8063c170ecf5146103b2578063c96e7c05146103c7578063cec9e1a7146103dc57610181565b8063a0e403b1146102fd578063a4a254411461031f578063b177ba2314610332578063b22d3e1414610352578063b3c2ec7614610372578063b9a3a28e1461039257610181565b80635a5285141161013e5780637702fa17116101185780637702fa17146102a65780637e2b2efe146102bb578063839c78f9146102d0578063905d6a99146102fd57610181565b80635a52851414610260578063684963511461027357806370e014621461029357610181565b80630ca5b67614610186578063163d7bc7146101bc5780632c3bad95146101de578063315fb7da146101fe57806336660de41461021e5780633f1214cf1461023e575b600080fd5b34801561019257600080fd5b506101a66101a136600461253c565b610471565b6040516101b39190613451565b60405180910390f35b3480156101c857600080fd5b506101dc6101d73660046127f1565b610576565b005b3480156101ea57600080fd5b506101dc6101f93660046126ed565b610679565b34801561020a57600080fd5b506101dc6102193660046127f1565b6107cd565b34801561022a57600080fd5b506101dc610239366004612615565b6108bb565b34801561024a57600080fd5b50610253610a15565b6040516101b391906136f5565b6101dc61026e366004612789565b610a7a565b34801561027f57600080fd5b506101dc61028e36600461282d565b610bfe565b6101dc6102a13660046127bd565b610c56565b3480156102b257600080fd5b50610253610d78565b3480156102c757600080fd5b50610253610dd8565b3480156102dc57600080fd5b506102f06102eb3660046125e1565b610de3565b6040516101b39190613703565b34801561030957600080fd5b50610312610df6565b6040516101b39190613711565b6101dc61032d366004612755565b610dfb565b34801561033e57600080fd5b506101dc61034d3660046127f1565b610f19565b34801561035e57600080fd5b506102f061036d36600461257d565b611007565b34801561037e57600080fd5b506101dc61038d36600461280f565b611032565b34801561039e57600080fd5b506101dc6103ad3660046126b9565b6110eb565b3480156103be57600080fd5b506102536111b8565b3480156103d357600080fd5b506102536111c3565b3480156103e857600080fd5b506103fc6103f736600461253c565b6111ce565b6040516101b39190613440565b34801561041557600080fd5b506101dc610424366004612721565b6113f7565b6101dc610437366004612755565b6114c4565b34801561044857600080fd5b506101dc610457366004612685565b6115e2565b34801561046857600080fd5b506102536116af565b606080838390506040519080825280602002602001820160405280156104b157816020015b61049e611c20565b8152602001906001900390816104965790505b50905060005b8381101561056c5760008585838181106104cd57fe5b90506020020160206104e2919081019061280f565b6001600160a01b0380821660009081526020818152604091829020825160c081018452815460ff161515815260018201549281019290925260028101549282019290925260038201549092166060830152600481015460808301526005015460a082015284519192509084908490811061055857fe5b6020908102919091010152506001016104b7565b5090505b92915050565b601060009054906101000a90046001600160a01b03166001600160a01b0316634b0a72bc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105c457600080fd5b505afa1580156105d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105fc919081019061251e565b336001600160a01b0382161461062d5760405162461bcd60e51b8152600401610624906134d2565b60405180910390fd5b61063e600e8363ffffffff61170f16565b7fd21ccbbae3d29826d53310efdc993c64e27496dd31694b292f1a120344ec37ab8260405161066d91906136f5565b60405180910390a15050565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106ca57600080fd5b505af11580156106de573d6000803e3d6000fd5b5050604080516060810182526023546001600160a01b0390811682526024541660208201526025548183015290516359cff02160e01b815273__PaymentChallengeIFEOutputSpent________93506359cff0219250610746919060119087906004016135b5565b60006040518083038186803b15801561075e57600080fd5b505af4158015610772573d6000803e3d6000fd5b50505050806001600160a01b0316634e0f74366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107b157600080fd5b505af11580156107c5573d6000803e3d6000fd5b505050505050565b603060009054906101000a90046001600160a01b03166001600160a01b0316634b0a72bc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561081b57600080fd5b505afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610853919081019061251e565b336001600160a01b0382161461087b5760405162461bcd60e51b8152600401610624906134d2565b61088c602e8363ffffffff61170f16565b7f30ce291291dca42b8168ab211fafc36d3d4868292ed3259874ed00864432e20e8260405161066d91906136f5565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090c57600080fd5b505af1158015610920573d6000803e3d6000fd5b505060408051606081018252601d546001600160a01b039081168252601e54166020820152601f54818301529051630c27711f60e11b815273__PaymentChallengeIFENotCanonical_______935063184ee23e925061098c919060119089908990899060040161352f565b60006040518083038186803b1580156109a457600080fd5b505af41580156109b8573d6000803e3d6000fd5b50505050806001600160a01b0316634e0f74366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109f757600080fd5b505af1158015610a0b573d6000803e3d6000fd5b5050505050505050565b6040805160a081018252602e546001600160801b038082168352600160801b9182900481166020840152602f549081169383019390935261ffff90830481166060830152600160901b9092049091166080820152600090610a75906117fd565b905090565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b50505050610aeb610d78565b6001600160801b0316803414610b135760405162461bcd60e51b815260040161062490613482565b6040805160a0810182526012546001600160a01b039081168252825160208181018552601354825283015260145481168284015260155416606082015260165460808201529051631ff4513b60e01b815273__PaymentStartInFlightExit______________91631ff4513b91610b929190601190889060040161369a565b60006040518083038186803b158015610baa57600080fd5b505af4158015610bbe573d6000803e3d6000fd5b5050505050806001600160a01b0316634e0f74366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107b157600080fd5b6031546001600160a01b0316338114610c295760405162461bcd60e51b8152600401610624906134d2565b610c3284611827565b15610c4657610c41848361184d565b610c50565b610c5084836118e9565b50505050565b601060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ca757600080fd5b505af1158015610cbb573d6000803e3d6000fd5b50505050610cc76116af565b6001600160801b0316803414610cef5760405162461bcd60e51b815260040161062490613482565b6040805160c0810182526001546001600160a01b0390811682526002541660208083019190915282519081018352600354815281830152600480546060830152600554608083015260065460a083015291516332c812a760e11b815273__PaymentStartStandardExit______________92636590254e92610b929290916000918991016136c7565b6040805160a081018252602c546001600160801b038082168352600160801b9182900481166020840152602d549081169383019390935261ffff90830481166060830152600160901b9092049091166080820152600090610a75906117fd565b666379da05b6000081565b6000610dee82611959565b90505b919050565b600281565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e4c57600080fd5b505af1158015610e60573d6000803e3d6000fd5b50505050610e6c610a15565b6001600160801b0316803414610e945760405162461bcd60e51b815260040161062490613482565b6040805160c0810182526017546001600160a01b03908116825282516020818101855260185482528301526019541681830152601a546060820152601b546080820152601c5460a0820152905163082153e960e21b815273__PaymentPiggybackInFlightExit__________916320854fa491610b9291906011908890600401613637565b603060009054906101000a90046001600160a01b03166001600160a01b0316634b0a72bc6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6757600080fd5b505afa158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f9f919081019061251e565b336001600160a01b03821614610fc75760405162461bcd60e51b8152600401610624906134d2565b610fd8602c8363ffffffff61170f16565b7f63ccac61f03626a0e717e96da239ff8996745b6c4ddcaffdedc88d7ef938f5ec8260405161066d91906136f5565b6000611011611c55565b61101a83611977565b9050611027858583611a0a565b9150505b9392505050565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561108357600080fd5b505af1158015611097573d6000803e3d6000fd5b505060408051808201825260265481526027546020820152905163b1cf0fed60e01b815273__PaymentDeleteInFlightExit_____________935063b1cf0fed92506107469190601190879060040161360f565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561113c57600080fd5b505af1158015611150573d6000803e3d6000fd5b505060408051606081018252602080546001600160a01b0390811683526021541690820152602254818301529051634bb4a4df60e11b815273__PaymentChallengeIFEInputSpent_________935063976949be925061074691906011908790600401613502565b6631bced02db000081565b6683734dd0b0800081565b6060808383905060405190808252806020026020018201604052801561120e57816020015b6111fb611c75565b8152602001906001900390816111f35790505b50905060005b8381101561056c57600085858381811061122a57fe5b905060200201602061123f919081019061280f565b6001600160a01b0381166000908152601160209081526040808320815161012081018352815460ff81161515825261010090046001600160401b03169381019390935260018101548383015260028101546060840152815160808082019093529495509193919290840191906003840190600490835b8282101561131c576040805160a081018252600584028601805482526001808201546001600160a01b0390811660208086019190915260028401549091169484019490945260038201546060840152600490910154608083015290835290920191016112b5565b5050509082525060408051608081019091526020909101906017830160046000835b828210156113a5576040805160a081018252600584028601805482526001808201546001600160a01b03908116602080860191909152600284015490911694840194909452600382015460608401526004909101546080830152908352909201910161133e565b50505090825250602b8201546001600160a01b03166020820152602c8201546040820152602d9091015460609091015283518490849081106113e357fe5b602090810291909101015250600101611214565b601060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561144857600080fd5b505af115801561145c573d6000803e3d6000fd5b505060408051606081018252600b546001600160a01b039081168252600c54166020820152600d5481830152905163edc91d4b60e01b815273__PaymentChallengeStandardExit__________935063edc91d4b9250610746919060009087906004016135e2565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561151557600080fd5b505af1158015611529573d6000803e3d6000fd5b50505050611535610a15565b6001600160801b031680341461155d5760405162461bcd60e51b815260040161062490613482565b6040805160c0810182526017546001600160a01b03908116825282516020818101855260185482528301526019541681830152601a546060820152601b546080820152601c5460a08201529051631845801f60e11b815273__PaymentPiggybackInFlightExit__________9163308b003e91610b9291906011908890600401613637565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561163357600080fd5b505af1158015611647573d6000803e3d6000fd5b505060408051606081018252601d546001600160a01b039081168252601e54166020820152601f54818301529051631287d7e160e31b815273__PaymentChallengeIFENotCanonical_______935063943ebf08925061074691906011908790600401613588565b6040805160a081018252600e546001600160801b038082168352600160801b9182900481166020840152600f549081169383019390935261ffff90830481166060830152600160901b9092049091166080820152600090610a75906117fd565b6040805160a08101825283546001600160801b038082168352600160801b918290048116602084015260018601549081169383019390935261ffff90830481166060830152600160901b909204909116608082015261176e9082611a7a565b8154600160801b90046001600160801b03161580159061179b575060018201546001600160801b03164210155b156117c2578154600160801b81046001600160801b03166001600160801b03199091161782555b81546001600160801b03918216600160801b02911617815560010180546001600160801b0319166001600160401b03426202a3000116179055565b600081604001516001600160801b031642101561181c57508051610df1565b506020810151610df1565b60006118436001600160a01b038316609763ffffffff611b3d16565b60ff161592915050565b604080516080810182526007546001600160a01b039081168252600854811660208301526009541681830152600a54606082015290516373c97b6d60e11b815273__PaymentProcessStandardExit____________9163e792f6da916118bd919060009087908790600401613665565b60006040518083038186803b1580156118d557600080fd5b505af41580156107c5573d6000803e3d6000fd5b604080516080810182526028546001600160a01b03908116825260295481166020830152602a541681830152602b5460608201529051632309cb3d60e01b815273__PaymentProcessInFlightExit____________91632309cb3d916118bd919060119087908790600401613665565b80516020820120600090610dee9060691c609763ffffffff611b4716565b61197f611c55565b633b9aca00808304906127109084068190049084066429f16b11c68311156119b95760405162461bcd60e51b815260040161062490613462565b61ffff8211156119db5760405162461bcd60e51b815260040161062490613472565b604080516060810182526001600160401b03909416845261ffff92831660208501529116908201529050919050565b60008315611a5d57600083611a1e84611b54565b604051602001611a2f92919061341e565b604051602081830303815290604052805190602001209050611a55818460400151611be3565b91505061102b565b611a7283805190602001208360400151611be3565b949350505050565b6000611a85836117fd565b90506000826001600160801b031611611ab05760405162461bcd60e51b8152600401610624906134b2565b826060015161ffff16816001600160801b031681611aca57fe5b046001600160801b0316826001600160801b03161015611afc5760405162461bcd60e51b8152600401610624906134c2565b826080015161ffff16816001600160801b031602826001600160801b03161115611b385760405162461bcd60e51b815260040161062490613492565b505050565b60ff161c60011690565b600160ff919091161b1790565b6000600161271003826040015161ffff161115611b835760405162461bcd60e51b8152600401610624906134a2565b81516429f16b11c66001600160401b039091161115611bb45760405162461bcd60e51b8152600401610624906134e2565b506040810151602082015182516001600160401b0316633b9aca000261ffff9182166127100201911601919050565b6000606983901c61ffff60981b609884901b1617806001600160a01b0381168114611a725760405162461bcd60e51b8152600401610624906134f2565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b604080516060810182526000808252602082018190529181019190915290565b60405180610120016040528060001515815260200160006001600160401b031681526020016000815260200160008152602001611cb0611ce1565b8152602001611cbd611ce1565b815260200160006001600160a01b0316815260200160008152602001600081525090565b60405180608001604052806004905b611cf8611d0e565b815260200190600190039081611cf05790505090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b803561057081613830565b805161057081613830565b600082601f830112611d6357600080fd5b8135611d76611d7182613745565b61371f565b81815260209384019390925082018360005b83811015611db45781358601611d9e8882611e8c565b8452506020928301929190910190600101611d88565b5050505092915050565b60008083601f840112611dd057600080fd5b5081356001600160401b03811115611de757600080fd5b602083019150836020820283011115611dff57600080fd5b9250929050565b600082601f830112611e1757600080fd5b8135611e25611d7182613745565b91508181835260208401935060208101905083856020840282011115611e4a57600080fd5b60005b83811015611db45781611e608882611e81565b8452506020928301929190910190600101611e4d565b803561057081613847565b803561057081613850565b600082601f830112611e9d57600080fd5b8135611eab611d7182613765565b91508082526020830160208301858383011115611ec757600080fd5b611ed28382846137ee565b50505092915050565b60006101208284031215611eee57600080fd5b611ef961012061371f565b905081356001600160401b03811115611f1157600080fd5b611f1d84828501611e8c565b8252506020611f2e84848301611e81565b60208301525060408201356001600160401b03811115611f4d57600080fd5b611f5984828501611e8c565b6040830152506060611f6d84828501612508565b60608301525060808201356001600160401b03811115611f8c57600080fd5b611f9884828501611e8c565b60808301525060a0611fac84828501612508565b60a08301525060c0611fc084828501611e81565b60c08301525060e08201356001600160401b03811115611fdf57600080fd5b611feb84828501611e8c565b60e0830152506101008201356001600160401b0381111561200b57600080fd5b61201784828501611e8c565b6101008301525092915050565b6000610100828403121561203757600080fd5b61204261010061371f565b905081356001600160401b0381111561205a57600080fd5b61206684828501611e8c565b825250602061207784848301612508565b60208301525060408201356001600160401b0381111561209657600080fd5b6120a284828501611e8c565b60408301525060606120b684828501612508565b60608301525060808201356001600160401b038111156120d557600080fd5b6120e184828501611e8c565b60808301525060a08201356001600160401b0381111561210057600080fd5b61210c84828501611e8c565b60a08301525060c061212084828501611e81565b60c08301525060e061213484828501611e81565b60e08301525092915050565b600060e0828403121561215257600080fd5b61215c60e061371f565b905081356001600160401b0381111561217457600080fd5b61218084828501611e8c565b82525060208201356001600160401b0381111561219c57600080fd5b6121a884828501611e8c565b60208301525060406121bc84828501611e81565b60408301525060608201356001600160401b038111156121db57600080fd5b6121e784828501611e8c565b60608301525060806121fb84828501612508565b60808301525060a08201356001600160401b0381111561221a57600080fd5b61222684828501611e8c565b60a08301525060c061223a84828501611e81565b60c08301525092915050565b600060c0828403121561225857600080fd5b61226260c061371f565b905060006122708484612513565b82525060208201356001600160401b0381111561228c57600080fd5b61229884828501611e8c565b60208301525060408201356001600160401b038111156122b757600080fd5b6122c384828501611e8c565b60408301525060606122d784828501612508565b60608301525060808201356001600160401b038111156122f657600080fd5b61230284828501611e8c565b60808301525060a061231684828501611e81565b60a08301525092915050565b60006040828403121561233457600080fd5b61233e604061371f565b905081356001600160401b0381111561235657600080fd5b61236284828501611e8c565b825250602061237384848301612508565b60208301525092915050565b600060a0828403121561239157600080fd5b61239b60a061371f565b905081356001600160401b038111156123b357600080fd5b6123bf84828501611e8c565b82525060208201356001600160401b038111156123db57600080fd5b6123e784828501611d52565b60208301525060408201356001600160401b0381111561240657600080fd5b61241284828501611e06565b60408301525060608201356001600160401b0381111561243157600080fd5b61243d84828501611d52565b60608301525060808201356001600160401b0381111561245c57600080fd5b61246884828501611d52565b60808301525092915050565b60006060828403121561248657600080fd5b612490606061371f565b9050600061249e8484611e81565b82525060208201356001600160401b038111156124ba57600080fd5b6124c684828501611e8c565b60208301525060408201356001600160401b038111156124e557600080fd5b6124f184828501611e8c565b60408301525092915050565b803561057081613859565b803561057081613862565b80356105708161386b565b60006020828403121561253057600080fd5b6000611a728484611d47565b6000806020838503121561254f57600080fd5b82356001600160401b0381111561256557600080fd5b61257185828601611dbe565b92509250509250929050565b60008060006060848603121561259257600080fd5b600061259e8686611e76565b93505060208401356001600160401b038111156125ba57600080fd5b6125c686828701611e8c565b92505060406125d786828701611e81565b9150509250925092565b6000602082840312156125f357600080fd5b81356001600160401b0381111561260957600080fd5b611a7284828501611e8c565b60008060006060848603121561262a57600080fd5b83356001600160401b0381111561264057600080fd5b61264c86828701611e8c565b935050602061265d86828701611e81565b92505060408401356001600160401b0381111561267957600080fd5b6125d786828701611e8c565b60006020828403121561269757600080fd5b81356001600160401b038111156126ad57600080fd5b611a7284828501611edb565b6000602082840312156126cb57600080fd5b81356001600160401b038111156126e157600080fd5b611a7284828501612024565b6000602082840312156126ff57600080fd5b81356001600160401b0381111561271557600080fd5b611a7284828501612140565b60006020828403121561273357600080fd5b81356001600160401b0381111561274957600080fd5b611a7284828501612246565b60006020828403121561276757600080fd5b81356001600160401b0381111561277d57600080fd5b611a7284828501612322565b60006020828403121561279b57600080fd5b81356001600160401b038111156127b157600080fd5b611a728482850161237f565b6000602082840312156127cf57600080fd5b81356001600160401b038111156127e557600080fd5b611a7284828501612474565b60006020828403121561280357600080fd5b6000611a7284846124fd565b60006020828403121561282157600080fd5b6000611a728484612513565b60008060006060848603121561284257600080fd5b600061284e8686612513565b935050602061285f86828701611e81565b92505060406125d786828701611d3c565b600061102b8383612a9d565b600061288883836131b3565b50506105e00190565b600061289d838361328f565b505060c00190565b60006128b1838361339f565b505060a00190565b60006128c58383612a94565b505060200190565b6128d6816137a8565b82525050565b60006128e782613795565b6128f1818561379f565b9350836020820285016129038561378c565b8060005b8581101561293d57848403895281516129208582612870565b945061292b8361378c565b60209a909a0199925050600101612907565b5091979650505050505050565b600061295582613795565b61295f818561379f565b935061296a8361378c565b8060005b83811015612998578151612982888261287c565b975061298d8361378c565b92505060010161296e565b509495945050505050565b60006129ae82613795565b6129b8818561379f565b93506129c38361378c565b8060005b838110156129985781516129db8882612891565b97506129e68361378c565b9250506001016129c7565b6129fa81613799565b612a048184610df1565b9250612a0f82613792565b8060005b838110156107c5578151612a2787826128a5565b9650612a328361378c565b925050600101612a13565b6000612a4882613795565b612a52818561379f565b9350612a5d8361378c565b8060005b83811015612998578151612a7588826128b9565b9750612a808361378c565b925050600101612a61565b6128d6816137b3565b6128d681613792565b6000612aa882613795565b612ab2818561379f565b9350612ac28185602086016137fa565b612acb81613826565b9093019392505050565b6000612ae082613795565b612aea8185610df1565b9350612afa8185602086016137fa565b9290920192915050565b6128d6816137e3565b6000612b1a60348361379f565b7f626c6f636b4e756d2065786365656473206d61782073697a6520616c6c6f77658152736420696e20506c61736d614672616d65776f726b60601b602082015260400192915050565b6000612b7060228361379f565b7f7478496e6465782065786365656473207468652073697a65206f662075696e74815261189b60f11b602082015260400192915050565b6000612bb460208361379f565b7f496e7075742076616c7565206d757374206d61746368206d73672e76616c7565815260200192915050565b6000612bed60158361379f565b74084dedcc840e6d2f4ca40d2e640e8dede40d0d2ced605b1b815260200192915050565b6000612c1e60148361379f565b73092dcecc2d8d2c840deeae8e0eae840d2dcc8caf60631b815260200192915050565b6000612c4e60188361379f565b7f426f6e642073697a652063616e6e6f74206265207a65726f0000000000000000815260200192915050565b6000612c8760148361379f565b73426f6e642073697a6520697320746f6f206c6f7760601b815260200192915050565b6000612cb7601e8361379f565b7f43616c6c6572206164647265737320697320756e617574686f72697a65640000815260200192915050565b6000612cf060148361379f565b7324b73b30b634b210313637b1b590373ab6b132b960611b815260200192915050565b6000612d2060108361379f565b6f457869744964206f766572666c6f777360801b815260200192915050565b80516020830190610c508482612a94565b805161012080845260009190840190612d698282612a9d565b9150506020830151612d7e6020860182612a94565b5060408301518482036040860152612d968282612a9d565b9150506060830151612dab60608601826133fb565b5060808301518482036080860152612dc38282612a9d565b91505060a0830151612dd860a08601826133fb565b5060c0830151612deb60c0860182612a94565b5060e083015184820360e0860152612e038282612a9d565b915050610100830151848203610100860152612e1f8282612a9d565b95945050505050565b805161010080845260009190840190612e418282612a9d565b9150506020830151612e5660208601826133fb565b5060408301518482036040860152612e6e8282612a9d565b9150506060830151612e8360608601826133fb565b5060808301518482036080860152612e9b8282612a9d565b91505060a083015184820360a0860152612eb58282612a9d565b91505060c0830151612eca60c0860182612a94565b5060e083015161056c60e0860182612a94565b805160e080845260009190840190612ef58282612a9d565b91505060208301518482036020860152612f0f8282612a9d565b9150506040830151612f246040860182612a94565b5060608301518482036060860152612f3c8282612a9d565b9150506080830151612f5160808601826133fb565b5060a083015184820360a0860152612f698282612a9d565b91505060c083015161056c60c0860182612a94565b805160009060c0840190612f9285826133f2565b5060208301518482036020860152612faa8282612a9d565b91505060408301518482036040860152612fc48282612a9d565b9150506060830151612fd960608601826133fb565b5060808301518482036080860152612ff18282612a9d565b91505060a083015161056c60a0860182612a94565b805160608301906130178482612b04565b50602082015161302a6020850182612b04565b506040820151610c506040850182612a94565b8051604083019061304e8482612a94565b506020820151610c506020850182612a94565b805160c08301906130728482612b04565b5060208201516130856020850182612d3f565b5060408201516130986040850182612b04565b5060608201516130ab6060850182612a94565b5060808201516130be6080850182612a94565b5060a0820151610c5060a0850182612a94565b805160808301906130e28482612b04565b5060208201516130f56020850182612b04565b5060408201516131086040850182612b04565b506060820151610c506060850182612a94565b805160a083019061312c8482612b04565b50602082015161313f6020850182612d3f565b5060408201516131526040850182612b04565b5060608201516131656060850182612b04565b506080820151610c506080850182612a94565b805160c08301906131898482612b04565b50602082015161319c6020850182612b04565b5060408201516130986040850182612d3f565b9052565b80516105e08301906131c58482612a8b565b5060208201516131d86020850182613415565b5060408201516131eb6040850182612a94565b5060608201516131fe6060850182612a94565b50608082015161321160808501826129f1565b5060a08201516132256103008501826129f1565b5060c08201516132396105808501826128cd565b5060e082015161324d6105a0850182612a94565b50610100820151610c506105c0850182612a94565b805160408084526000919084019061327a8282612a9d565b915050602083015161056c60208601826133fb565b805160c08301906132a08482612a8b565b5060208201516132b36020850182612a94565b5060408201516132c66040850182612a94565b5060608201516130ab60608501826128cd565b805160a0808452600091908401906132f18282612a9d565b9150506020830151848203602086015261330b82826128dc565b915050604083015184820360408601526133258282612a3d565b9150506060830151848203606086015261333f82826128dc565b91505060808301518482036080860152612e1f82826128dc565b8051600090606084019061336d8582612a94565b50602083015184820360208601526133858282612a9d565b91505060408301518482036040860152612e1f8282612a9d565b805160a08301906133b08482612a94565b5060208201516133c360208501826128cd565b5060408201516133d660408501826128cd565b5060608201516131656060850182612a94565b6128d6816137b8565b6128d6816137cb565b6128d6816137c4565b6128d661341082613792565b613792565b6128d6816137d7565b600061342a8285612ad5565b91506134368284613404565b5060200192915050565b6020808252810161102b818461294a565b6020808252810161102b81846129a3565b60208082528101610dee81612b0d565b60208082528101610dee81612b63565b60208082528101610dee81612ba7565b60208082528101610dee81612be0565b60208082528101610dee81612c11565b60208082528101610dee81612c41565b60208082528101610dee81612c7a565b60208082528101610dee81612caa565b60208082528101610dee81612ce3565b60208082528101610dee81612d13565b60a081016135108286613006565b61351d60608301856131af565b8181036080830152612e1f8184612e28565b60e0810161353d8288613006565b61354a60608301876131af565b818103608083015261355c8186612a9d565b905061356b60a0830185612a94565b81810360c083015261357d8184612a9d565b979650505050505050565b60a081016135968286613006565b6135a360608301856131af565b8181036080830152612e1f8184612d50565b60a081016135c38286613006565b6135d060608301856131af565b8181036080830152612e1f8184612edd565b60a081016135f08286613006565b6135fd60608301856131af565b8181036080830152612e1f8184612f7e565b6080810161361d828661303d565b61362a60408301856131af565b611a7260608301846133f2565b61010081016136468286613061565b61365360c08301856131af565b81810360e0830152612e1f8184613262565b60e0810161367382876130d1565b61368060808301866131af565b61368d60a08301856133f2565b612e1f60c08301846128cd565b60e081016136a8828661311b565b6136b560a08301856131af565b81810360c0830152612e1f81846132d9565b61010081016136d68286613178565b6136e360c08301856131af565b81810360e0830152612e1f8184613359565b6020810161057082846133e9565b6020810161057082846133f2565b6020810161057082846133fb565b6040518181016001600160401b038111828210171561373d57600080fd5b604052919050565b60006001600160401b0382111561375b57600080fd5b5060209081020190565b60006001600160401b0382111561377b57600080fd5b506020601f91909101601f19160190565b60200190565b90565b5190565b50600490565b90815260200190565b6000610dee826137cb565b151590565b6001600160801b031690565b61ffff1690565b6001600160a01b031690565b6001600160401b031690565b6000610dee826137a8565b82818337506000910152565b60005b838110156138155781810151838201526020016137fd565b83811115610c505750506000910152565b601f01601f191690565b613839816137a8565b811461384457600080fd5b50565b613839816137b3565b61383981613792565b613839816137b8565b613839816137c4565b613839816137cb565b61387c611d0e565b506040805160a0810182526001600160801b03949094168452600060208501526780000000000000009084015261ffff91821660608401521660808201529056fea365627a7a72315820122a5477d510a3cc948e3555233d33efad2e6ee5dec5005891613e26b0a815b76c6578706572696d656e74616cf564736f6c634300050b0040",
  "deployedBytecode": "0x6080604052600436106101815760003560e01c8063a0e403b1116100d1578063c170ecf51161008a578063df2933e211610064578063df2933e214610409578063e5bc60c714610429578063e83622981461043c578063fe32a1241461045c57610181565b8063c170ecf5146103b2578063c96e7c05146103c7578063cec9e1a7146103dc57610181565b8063a0e403b1146102fd578063a4a254411461031f578063b177ba2314610332578063b22d3e1414610352578063b3c2ec7614610372578063b9a3a28e1461039257610181565b80635a5285141161013e5780637702fa17116101185780637702fa17146102a65780637e2b2efe146102bb578063839c78f9146102d0578063905d6a99146102fd57610181565b80635a52851414610260578063684963511461027357806370e014621461029357610181565b80630ca5b67614610186578063163d7bc7146101bc5780632c3bad95146101de578063315fb7da146101fe57806336660de41461021e5780633f1214cf1461023e575b600080fd5b34801561019257600080fd5b506101a66101a136600461253c565b610471565b6040516101b39190613451565b60405180910390f35b3480156101c857600080fd5b506101dc6101d73660046127f1565b610576565b005b3480156101ea57600080fd5b506101dc6101f93660046126ed565b610679565b34801561020a57600080fd5b506101dc6102193660046127f1565b6107cd565b34801561022a57600080fd5b506101dc610239366004612615565b6108bb565b34801561024a57600080fd5b50610253610a15565b6040516101b391906136f5565b6101dc61026e366004612789565b610a7a565b34801561027f57600080fd5b506101dc61028e36600461282d565b610bfe565b6101dc6102a13660046127bd565b610c56565b3480156102b257600080fd5b50610253610d78565b3480156102c757600080fd5b50610253610dd8565b3480156102dc57600080fd5b506102f06102eb3660046125e1565b610de3565b6040516101b39190613703565b34801561030957600080fd5b50610312610df6565b6040516101b39190613711565b6101dc61032d366004612755565b610dfb565b34801561033e57600080fd5b506101dc61034d3660046127f1565b610f19565b34801561035e57600080fd5b506102f061036d36600461257d565b611007565b34801561037e57600080fd5b506101dc61038d36600461280f565b611032565b34801561039e57600080fd5b506101dc6103ad3660046126b9565b6110eb565b3480156103be57600080fd5b506102536111b8565b3480156103d357600080fd5b506102536111c3565b3480156103e857600080fd5b506103fc6103f736600461253c565b6111ce565b6040516101b39190613440565b34801561041557600080fd5b506101dc610424366004612721565b6113f7565b6101dc610437366004612755565b6114c4565b34801561044857600080fd5b506101dc610457366004612685565b6115e2565b34801561046857600080fd5b506102536116af565b606080838390506040519080825280602002602001820160405280156104b157816020015b61049e611c20565b8152602001906001900390816104965790505b50905060005b8381101561056c5760008585838181106104cd57fe5b90506020020160206104e2919081019061280f565b6001600160a01b0380821660009081526020818152604091829020825160c081018452815460ff161515815260018201549281019290925260028101549282019290925260038201549092166060830152600481015460808301526005015460a082015284519192509084908490811061055857fe5b6020908102919091010152506001016104b7565b5090505b92915050565b601060009054906101000a90046001600160a01b03166001600160a01b0316634b0a72bc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105c457600080fd5b505afa1580156105d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105fc919081019061251e565b336001600160a01b0382161461062d5760405162461bcd60e51b8152600401610624906134d2565b60405180910390fd5b61063e600e8363ffffffff61170f16565b7fd21ccbbae3d29826d53310efdc993c64e27496dd31694b292f1a120344ec37ab8260405161066d91906136f5565b60405180910390a15050565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106ca57600080fd5b505af11580156106de573d6000803e3d6000fd5b5050604080516060810182526023546001600160a01b0390811682526024541660208201526025548183015290516359cff02160e01b815273__PaymentChallengeIFEOutputSpent________93506359cff0219250610746919060119087906004016135b5565b60006040518083038186803b15801561075e57600080fd5b505af4158015610772573d6000803e3d6000fd5b50505050806001600160a01b0316634e0f74366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107b157600080fd5b505af11580156107c5573d6000803e3d6000fd5b505050505050565b603060009054906101000a90046001600160a01b03166001600160a01b0316634b0a72bc6040518163ffffffff1660e01b815260040160206040518083038186803b15801561081b57600080fd5b505afa15801561082f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610853919081019061251e565b336001600160a01b0382161461087b5760405162461bcd60e51b8152600401610624906134d2565b61088c602e8363ffffffff61170f16565b7f30ce291291dca42b8168ab211fafc36d3d4868292ed3259874ed00864432e20e8260405161066d91906136f5565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090c57600080fd5b505af1158015610920573d6000803e3d6000fd5b505060408051606081018252601d546001600160a01b039081168252601e54166020820152601f54818301529051630c27711f60e11b815273__PaymentChallengeIFENotCanonical_______935063184ee23e925061098c919060119089908990899060040161352f565b60006040518083038186803b1580156109a457600080fd5b505af41580156109b8573d6000803e3d6000fd5b50505050806001600160a01b0316634e0f74366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156109f757600080fd5b505af1158015610a0b573d6000803e3d6000fd5b5050505050505050565b6040805160a081018252602e546001600160801b038082168352600160801b9182900481166020840152602f549081169383019390935261ffff90830481166060830152600160901b9092049091166080820152600090610a75906117fd565b905090565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b50505050610aeb610d78565b6001600160801b0316803414610b135760405162461bcd60e51b815260040161062490613482565b6040805160a0810182526012546001600160a01b039081168252825160208181018552601354825283015260145481168284015260155416606082015260165460808201529051631ff4513b60e01b815273__PaymentStartInFlightExit______________91631ff4513b91610b929190601190889060040161369a565b60006040518083038186803b158015610baa57600080fd5b505af4158015610bbe573d6000803e3d6000fd5b5050505050806001600160a01b0316634e0f74366040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107b157600080fd5b6031546001600160a01b0316338114610c295760405162461bcd60e51b8152600401610624906134d2565b610c3284611827565b15610c4657610c41848361184d565b610c50565b610c5084836118e9565b50505050565b601060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ca757600080fd5b505af1158015610cbb573d6000803e3d6000fd5b50505050610cc76116af565b6001600160801b0316803414610cef5760405162461bcd60e51b815260040161062490613482565b6040805160c0810182526001546001600160a01b0390811682526002541660208083019190915282519081018352600354815281830152600480546060830152600554608083015260065460a083015291516332c812a760e11b815273__PaymentStartStandardExit______________92636590254e92610b929290916000918991016136c7565b6040805160a081018252602c546001600160801b038082168352600160801b9182900481166020840152602d549081169383019390935261ffff90830481166060830152600160901b9092049091166080820152600090610a75906117fd565b666379da05b6000081565b6000610dee82611959565b90505b919050565b600281565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e4c57600080fd5b505af1158015610e60573d6000803e3d6000fd5b50505050610e6c610a15565b6001600160801b0316803414610e945760405162461bcd60e51b815260040161062490613482565b6040805160c0810182526017546001600160a01b03908116825282516020818101855260185482528301526019541681830152601a546060820152601b546080820152601c5460a0820152905163082153e960e21b815273__PaymentPiggybackInFlightExit__________916320854fa491610b9291906011908890600401613637565b603060009054906101000a90046001600160a01b03166001600160a01b0316634b0a72bc6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f6757600080fd5b505afa158015610f7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f9f919081019061251e565b336001600160a01b03821614610fc75760405162461bcd60e51b8152600401610624906134d2565b610fd8602c8363ffffffff61170f16565b7f63ccac61f03626a0e717e96da239ff8996745b6c4ddcaffdedc88d7ef938f5ec8260405161066d91906136f5565b6000611011611c55565b61101a83611977565b9050611027858583611a0a565b9150505b9392505050565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561108357600080fd5b505af1158015611097573d6000803e3d6000fd5b505060408051808201825260265481526027546020820152905163b1cf0fed60e01b815273__PaymentDeleteInFlightExit_____________935063b1cf0fed92506107469190601190879060040161360f565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561113c57600080fd5b505af1158015611150573d6000803e3d6000fd5b505060408051606081018252602080546001600160a01b0390811683526021541690820152602254818301529051634bb4a4df60e11b815273__PaymentChallengeIFEInputSpent_________935063976949be925061074691906011908790600401613502565b6631bced02db000081565b6683734dd0b0800081565b6060808383905060405190808252806020026020018201604052801561120e57816020015b6111fb611c75565b8152602001906001900390816111f35790505b50905060005b8381101561056c57600085858381811061122a57fe5b905060200201602061123f919081019061280f565b6001600160a01b0381166000908152601160209081526040808320815161012081018352815460ff81161515825261010090046001600160401b03169381019390935260018101548383015260028101546060840152815160808082019093529495509193919290840191906003840190600490835b8282101561131c576040805160a081018252600584028601805482526001808201546001600160a01b0390811660208086019190915260028401549091169484019490945260038201546060840152600490910154608083015290835290920191016112b5565b5050509082525060408051608081019091526020909101906017830160046000835b828210156113a5576040805160a081018252600584028601805482526001808201546001600160a01b03908116602080860191909152600284015490911694840194909452600382015460608401526004909101546080830152908352909201910161133e565b50505090825250602b8201546001600160a01b03166020820152602c8201546040820152602d9091015460609091015283518490849081106113e357fe5b602090810291909101015250600101611214565b601060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561144857600080fd5b505af115801561145c573d6000803e3d6000fd5b505060408051606081018252600b546001600160a01b039081168252600c54166020820152600d5481830152905163edc91d4b60e01b815273__PaymentChallengeStandardExit__________935063edc91d4b9250610746919060009087906004016135e2565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561151557600080fd5b505af1158015611529573d6000803e3d6000fd5b50505050611535610a15565b6001600160801b031680341461155d5760405162461bcd60e51b815260040161062490613482565b6040805160c0810182526017546001600160a01b03908116825282516020818101855260185482528301526019541681830152601a546060820152601b546080820152601c5460a08201529051631845801f60e11b815273__PaymentPiggybackInFlightExit__________9163308b003e91610b9291906011908890600401613637565b603060009054906101000a90046001600160a01b0316806001600160a01b031663ff27b1896040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561163357600080fd5b505af1158015611647573d6000803e3d6000fd5b505060408051606081018252601d546001600160a01b039081168252601e54166020820152601f54818301529051631287d7e160e31b815273__PaymentChallengeIFENotCanonical_______935063943ebf08925061074691906011908790600401613588565b6040805160a081018252600e546001600160801b038082168352600160801b9182900481166020840152600f549081169383019390935261ffff90830481166060830152600160901b9092049091166080820152600090610a75906117fd565b6040805160a08101825283546001600160801b038082168352600160801b918290048116602084015260018601549081169383019390935261ffff90830481166060830152600160901b909204909116608082015261176e9082611a7a565b8154600160801b90046001600160801b03161580159061179b575060018201546001600160801b03164210155b156117c2578154600160801b81046001600160801b03166001600160801b03199091161782555b81546001600160801b03918216600160801b02911617815560010180546001600160801b0319166001600160401b03426202a3000116179055565b600081604001516001600160801b031642101561181c57508051610df1565b506020810151610df1565b60006118436001600160a01b038316609763ffffffff611b3d16565b60ff161592915050565b604080516080810182526007546001600160a01b039081168252600854811660208301526009541681830152600a54606082015290516373c97b6d60e11b815273__PaymentProcessStandardExit____________9163e792f6da916118bd919060009087908790600401613665565b60006040518083038186803b1580156118d557600080fd5b505af41580156107c5573d6000803e3d6000fd5b604080516080810182526028546001600160a01b03908116825260295481166020830152602a541681830152602b5460608201529051632309cb3d60e01b815273__PaymentProcessInFlightExit____________91632309cb3d916118bd919060119087908790600401613665565b80516020820120600090610dee9060691c609763ffffffff611b4716565b61197f611c55565b633b9aca00808304906127109084068190049084066429f16b11c68311156119b95760405162461bcd60e51b815260040161062490613462565b61ffff8211156119db5760405162461bcd60e51b815260040161062490613472565b604080516060810182526001600160401b03909416845261ffff92831660208501529116908201529050919050565b60008315611a5d57600083611a1e84611b54565b604051602001611a2f92919061341e565b604051602081830303815290604052805190602001209050611a55818460400151611be3565b91505061102b565b611a7283805190602001208360400151611be3565b949350505050565b6000611a85836117fd565b90506000826001600160801b031611611ab05760405162461bcd60e51b8152600401610624906134b2565b826060015161ffff16816001600160801b031681611aca57fe5b046001600160801b0316826001600160801b03161015611afc5760405162461bcd60e51b8152600401610624906134c2565b826080015161ffff16816001600160801b031602826001600160801b03161115611b385760405162461bcd60e51b815260040161062490613492565b505050565b60ff161c60011690565b600160ff919091161b1790565b6000600161271003826040015161ffff161115611b835760405162461bcd60e51b8152600401610624906134a2565b81516429f16b11c66001600160401b039091161115611bb45760405162461bcd60e51b8152600401610624906134e2565b506040810151602082015182516001600160401b0316633b9aca000261ffff9182166127100201911601919050565b6000606983901c61ffff60981b609884901b1617806001600160a01b0381168114611a725760405162461bcd60e51b8152600401610624906134f2565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b604080516060810182526000808252602082018190529181019190915290565b60405180610120016040528060001515815260200160006001600160401b031681526020016000815260200160008152602001611cb0611ce1565b8152602001611cbd611ce1565b815260200160006001600160a01b0316815260200160008152602001600081525090565b60405180608001604052806004905b611cf8611d0e565b815260200190600190039081611cf05790505090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b803561057081613830565b805161057081613830565b600082601f830112611d6357600080fd5b8135611d76611d7182613745565b61371f565b81815260209384019390925082018360005b83811015611db45781358601611d9e8882611e8c565b8452506020928301929190910190600101611d88565b5050505092915050565b60008083601f840112611dd057600080fd5b5081356001600160401b03811115611de757600080fd5b602083019150836020820283011115611dff57600080fd5b9250929050565b600082601f830112611e1757600080fd5b8135611e25611d7182613745565b91508181835260208401935060208101905083856020840282011115611e4a57600080fd5b60005b83811015611db45781611e608882611e81565b8452506020928301929190910190600101611e4d565b803561057081613847565b803561057081613850565b600082601f830112611e9d57600080fd5b8135611eab611d7182613765565b91508082526020830160208301858383011115611ec757600080fd5b611ed28382846137ee565b50505092915050565b60006101208284031215611eee57600080fd5b611ef961012061371f565b905081356001600160401b03811115611f1157600080fd5b611f1d84828501611e8c565b8252506020611f2e84848301611e81565b60208301525060408201356001600160401b03811115611f4d57600080fd5b611f5984828501611e8c565b6040830152506060611f6d84828501612508565b60608301525060808201356001600160401b03811115611f8c57600080fd5b611f9884828501611e8c565b60808301525060a0611fac84828501612508565b60a08301525060c0611fc084828501611e81565b60c08301525060e08201356001600160401b03811115611fdf57600080fd5b611feb84828501611e8c565b60e0830152506101008201356001600160401b0381111561200b57600080fd5b61201784828501611e8c565b6101008301525092915050565b6000610100828403121561203757600080fd5b61204261010061371f565b905081356001600160401b0381111561205a57600080fd5b61206684828501611e8c565b825250602061207784848301612508565b60208301525060408201356001600160401b0381111561209657600080fd5b6120a284828501611e8c565b60408301525060606120b684828501612508565b60608301525060808201356001600160401b038111156120d557600080fd5b6120e184828501611e8c565b60808301525060a08201356001600160401b0381111561210057600080fd5b61210c84828501611e8c565b60a08301525060c061212084828501611e81565b60c08301525060e061213484828501611e81565b60e08301525092915050565b600060e0828403121561215257600080fd5b61215c60e061371f565b905081356001600160401b0381111561217457600080fd5b61218084828501611e8c565b82525060208201356001600160401b0381111561219c57600080fd5b6121a884828501611e8c565b60208301525060406121bc84828501611e81565b60408301525060608201356001600160401b038111156121db57600080fd5b6121e784828501611e8c565b60608301525060806121fb84828501612508565b60808301525060a08201356001600160401b0381111561221a57600080fd5b61222684828501611e8c565b60a08301525060c061223a84828501611e81565b60c08301525092915050565b600060c0828403121561225857600080fd5b61226260c061371f565b905060006122708484612513565b82525060208201356001600160401b0381111561228c57600080fd5b61229884828501611e8c565b60208301525060408201356001600160401b038111156122b757600080fd5b6122c384828501611e8c565b60408301525060606122d784828501612508565b60608301525060808201356001600160401b038111156122f657600080fd5b61230284828501611e8c565b60808301525060a061231684828501611e81565b60a08301525092915050565b60006040828403121561233457600080fd5b61233e604061371f565b905081356001600160401b0381111561235657600080fd5b61236284828501611e8c565b825250602061237384848301612508565b60208301525092915050565b600060a0828403121561239157600080fd5b61239b60a061371f565b905081356001600160401b038111156123b357600080fd5b6123bf84828501611e8c565b82525060208201356001600160401b038111156123db57600080fd5b6123e784828501611d52565b60208301525060408201356001600160401b0381111561240657600080fd5b61241284828501611e06565b60408301525060608201356001600160401b0381111561243157600080fd5b61243d84828501611d52565b60608301525060808201356001600160401b0381111561245c57600080fd5b61246884828501611d52565b60808301525092915050565b60006060828403121561248657600080fd5b612490606061371f565b9050600061249e8484611e81565b82525060208201356001600160401b038111156124ba57600080fd5b6124c684828501611e8c565b60208301525060408201356001600160401b038111156124e557600080fd5b6124f184828501611e8c565b60408301525092915050565b803561057081613859565b803561057081613862565b80356105708161386b565b60006020828403121561253057600080fd5b6000611a728484611d47565b6000806020838503121561254f57600080fd5b82356001600160401b0381111561256557600080fd5b61257185828601611dbe565b92509250509250929050565b60008060006060848603121561259257600080fd5b600061259e8686611e76565b93505060208401356001600160401b038111156125ba57600080fd5b6125c686828701611e8c565b92505060406125d786828701611e81565b9150509250925092565b6000602082840312156125f357600080fd5b81356001600160401b0381111561260957600080fd5b611a7284828501611e8c565b60008060006060848603121561262a57600080fd5b83356001600160401b0381111561264057600080fd5b61264c86828701611e8c565b935050602061265d86828701611e81565b92505060408401356001600160401b0381111561267957600080fd5b6125d786828701611e8c565b60006020828403121561269757600080fd5b81356001600160401b038111156126ad57600080fd5b611a7284828501611edb565b6000602082840312156126cb57600080fd5b81356001600160401b038111156126e157600080fd5b611a7284828501612024565b6000602082840312156126ff57600080fd5b81356001600160401b0381111561271557600080fd5b611a7284828501612140565b60006020828403121561273357600080fd5b81356001600160401b0381111561274957600080fd5b611a7284828501612246565b60006020828403121561276757600080fd5b81356001600160401b0381111561277d57600080fd5b611a7284828501612322565b60006020828403121561279b57600080fd5b81356001600160401b038111156127b157600080fd5b611a728482850161237f565b6000602082840312156127cf57600080fd5b81356001600160401b038111156127e557600080fd5b611a7284828501612474565b60006020828403121561280357600080fd5b6000611a7284846124fd565b60006020828403121561282157600080fd5b6000611a728484612513565b60008060006060848603121561284257600080fd5b600061284e8686612513565b935050602061285f86828701611e81565b92505060406125d786828701611d3c565b600061102b8383612a9d565b600061288883836131b3565b50506105e00190565b600061289d838361328f565b505060c00190565b60006128b1838361339f565b505060a00190565b60006128c58383612a94565b505060200190565b6128d6816137a8565b82525050565b60006128e782613795565b6128f1818561379f565b9350836020820285016129038561378c565b8060005b8581101561293d57848403895281516129208582612870565b945061292b8361378c565b60209a909a0199925050600101612907565b5091979650505050505050565b600061295582613795565b61295f818561379f565b935061296a8361378c565b8060005b83811015612998578151612982888261287c565b975061298d8361378c565b92505060010161296e565b509495945050505050565b60006129ae82613795565b6129b8818561379f565b93506129c38361378c565b8060005b838110156129985781516129db8882612891565b97506129e68361378c565b9250506001016129c7565b6129fa81613799565b612a048184610df1565b9250612a0f82613792565b8060005b838110156107c5578151612a2787826128a5565b9650612a328361378c565b925050600101612a13565b6000612a4882613795565b612a52818561379f565b9350612a5d8361378c565b8060005b83811015612998578151612a7588826128b9565b9750612a808361378c565b925050600101612a61565b6128d6816137b3565b6128d681613792565b6000612aa882613795565b612ab2818561379f565b9350612ac28185602086016137fa565b612acb81613826565b9093019392505050565b6000612ae082613795565b612aea8185610df1565b9350612afa8185602086016137fa565b9290920192915050565b6128d6816137e3565b6000612b1a60348361379f565b7f626c6f636b4e756d2065786365656473206d61782073697a6520616c6c6f77658152736420696e20506c61736d614672616d65776f726b60601b602082015260400192915050565b6000612b7060228361379f565b7f7478496e6465782065786365656473207468652073697a65206f662075696e74815261189b60f11b602082015260400192915050565b6000612bb460208361379f565b7f496e7075742076616c7565206d757374206d61746368206d73672e76616c7565815260200192915050565b6000612bed60158361379f565b74084dedcc840e6d2f4ca40d2e640e8dede40d0d2ced605b1b815260200192915050565b6000612c1e60148361379f565b73092dcecc2d8d2c840deeae8e0eae840d2dcc8caf60631b815260200192915050565b6000612c4e60188361379f565b7f426f6e642073697a652063616e6e6f74206265207a65726f0000000000000000815260200192915050565b6000612c8760148361379f565b73426f6e642073697a6520697320746f6f206c6f7760601b815260200192915050565b6000612cb7601e8361379f565b7f43616c6c6572206164647265737320697320756e617574686f72697a65640000815260200192915050565b6000612cf060148361379f565b7324b73b30b634b210313637b1b590373ab6b132b960611b815260200192915050565b6000612d2060108361379f565b6f457869744964206f766572666c6f777360801b815260200192915050565b80516020830190610c508482612a94565b805161012080845260009190840190612d698282612a9d565b9150506020830151612d7e6020860182612a94565b5060408301518482036040860152612d968282612a9d565b9150506060830151612dab60608601826133fb565b5060808301518482036080860152612dc38282612a9d565b91505060a0830151612dd860a08601826133fb565b5060c0830151612deb60c0860182612a94565b5060e083015184820360e0860152612e038282612a9d565b915050610100830151848203610100860152612e1f8282612a9d565b95945050505050565b805161010080845260009190840190612e418282612a9d565b9150506020830151612e5660208601826133fb565b5060408301518482036040860152612e6e8282612a9d565b9150506060830151612e8360608601826133fb565b5060808301518482036080860152612e9b8282612a9d565b91505060a083015184820360a0860152612eb58282612a9d565b91505060c0830151612eca60c0860182612a94565b5060e083015161056c60e0860182612a94565b805160e080845260009190840190612ef58282612a9d565b91505060208301518482036020860152612f0f8282612a9d565b9150506040830151612f246040860182612a94565b5060608301518482036060860152612f3c8282612a9d565b9150506080830151612f5160808601826133fb565b5060a083015184820360a0860152612f698282612a9d565b91505060c083015161056c60c0860182612a94565b805160009060c0840190612f9285826133f2565b5060208301518482036020860152612faa8282612a9d565b91505060408301518482036040860152612fc48282612a9d565b9150506060830151612fd960608601826133fb565b5060808301518482036080860152612ff18282612a9d565b91505060a083015161056c60a0860182612a94565b805160608301906130178482612b04565b50602082015161302a6020850182612b04565b506040820151610c506040850182612a94565b8051604083019061304e8482612a94565b506020820151610c506020850182612a94565b805160c08301906130728482612b04565b5060208201516130856020850182612d3f565b5060408201516130986040850182612b04565b5060608201516130ab6060850182612a94565b5060808201516130be6080850182612a94565b5060a0820151610c5060a0850182612a94565b805160808301906130e28482612b04565b5060208201516130f56020850182612b04565b5060408201516131086040850182612b04565b506060820151610c506060850182612a94565b805160a083019061312c8482612b04565b50602082015161313f6020850182612d3f565b5060408201516131526040850182612b04565b5060608201516131656060850182612b04565b506080820151610c506080850182612a94565b805160c08301906131898482612b04565b50602082015161319c6020850182612b04565b5060408201516130986040850182612d3f565b9052565b80516105e08301906131c58482612a8b565b5060208201516131d86020850182613415565b5060408201516131eb6040850182612a94565b5060608201516131fe6060850182612a94565b50608082015161321160808501826129f1565b5060a08201516132256103008501826129f1565b5060c08201516132396105808501826128cd565b5060e082015161324d6105a0850182612a94565b50610100820151610c506105c0850182612a94565b805160408084526000919084019061327a8282612a9d565b915050602083015161056c60208601826133fb565b805160c08301906132a08482612a8b565b5060208201516132b36020850182612a94565b5060408201516132c66040850182612a94565b5060608201516130ab60608501826128cd565b805160a0808452600091908401906132f18282612a9d565b9150506020830151848203602086015261330b82826128dc565b915050604083015184820360408601526133258282612a3d565b9150506060830151848203606086015261333f82826128dc565b91505060808301518482036080860152612e1f82826128dc565b8051600090606084019061336d8582612a94565b50602083015184820360208601526133858282612a9d565b91505060408301518482036040860152612e1f8282612a9d565b805160a08301906133b08482612a94565b5060208201516133c360208501826128cd565b5060408201516133d660408501826128cd565b5060608201516131656060850182612a94565b6128d6816137b8565b6128d6816137cb565b6128d6816137c4565b6128d661341082613792565b613792565b6128d6816137d7565b600061342a8285612ad5565b91506134368284613404565b5060200192915050565b6020808252810161102b818461294a565b6020808252810161102b81846129a3565b60208082528101610dee81612b0d565b60208082528101610dee81612b63565b60208082528101610dee81612ba7565b60208082528101610dee81612be0565b60208082528101610dee81612c11565b60208082528101610dee81612c41565b60208082528101610dee81612c7a565b60208082528101610dee81612caa565b60208082528101610dee81612ce3565b60208082528101610dee81612d13565b60a081016135108286613006565b61351d60608301856131af565b8181036080830152612e1f8184612e28565b60e0810161353d8288613006565b61354a60608301876131af565b818103608083015261355c8186612a9d565b905061356b60a0830185612a94565b81810360c083015261357d8184612a9d565b979650505050505050565b60a081016135968286613006565b6135a360608301856131af565b8181036080830152612e1f8184612d50565b60a081016135c38286613006565b6135d060608301856131af565b8181036080830152612e1f8184612edd565b60a081016135f08286613006565b6135fd60608301856131af565b8181036080830152612e1f8184612f7e565b6080810161361d828661303d565b61362a60408301856131af565b611a7260608301846133f2565b61010081016136468286613061565b61365360c08301856131af565b81810360e0830152612e1f8184613262565b60e0810161367382876130d1565b61368060808301866131af565b61368d60a08301856133f2565b612e1f60c08301846128cd565b60e081016136a8828661311b565b6136b560a08301856131af565b81810360c0830152612e1f81846132d9565b61010081016136d68286613178565b6136e360c08301856131af565b81810360e0830152612e1f8184613359565b6020810161057082846133e9565b6020810161057082846133f2565b6020810161057082846133fb565b6040518181016001600160401b038111828210171561373d57600080fd5b604052919050565b60006001600160401b0382111561375b57600080fd5b5060209081020190565b60006001600160401b0382111561377b57600080fd5b506020601f91909101601f19160190565b60200190565b90565b5190565b50600490565b90815260200190565b6000610dee826137cb565b151590565b6001600160801b031690565b61ffff1690565b6001600160a01b031690565b6001600160401b031690565b6000610dee826137a8565b82818337506000910152565b60005b838110156138155781810151838201526020016137fd565b83811115610c505750506000910152565b601f01601f191690565b613839816137a8565b811461384457600080fd5b50565b613839816137b3565b61383981613792565b613839816137b8565b613839816137c4565b613839816137cb565b61387c611d0e565b506040805160a0810182526001600160801b03949094168452600060208501526780000000000000009084015261ffff91821660608401521660808201529056fea365627a7a72315820122a5477d510a3cc948e3555233d33efad2e6ee5dec5005891613e26b0a815b76c6578706572696d656e74616cf564736f6c634300050b0040",
  "sourceMap": "505:1863:48:-;;;773:415;8:9:-1;5:2;;;30:1;27;20:12;5:2;773:415:48;;;;;;;;;;;;;;;;;;;;;2508:14:64;;2496:9;:26;;-1:-1:-1;;;;;;2496:26:64;-1:-1:-1;;;;;2496:26:64;;;;;;;;2584:15;;;;2562:38;;;;;2508:14;;;;-1:-1:-1;;2562:21:64;;:38;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2562:38:64;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2562:38:64;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2562:38:64;;;;;;;;;2533:68;-1:-1:-1;;;;;;2619:31:64;;2611:61;;;;;;;;;;;;;;;;;;;;;;2718:14;;2740:17;;;;;2718:40;;;;;2683:21;;-1:-1:-1;;;;;2718:21:64;;;;:40;;2740:17;2718:40;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2718:40:64;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2718:40:64;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2718:40:64;;;;;;;;;2683:76;-1:-1:-1;;;;;;2777:33:64;;2769:65;;;;;;;;;;;;;;2947:14;;2975:15;;;;3004:17;;;;;3035:18;;;;2875:188;;;;;:24;;:40;;:188;;2929:4;;2947:14;;2975:15;;3004:17;2875:188;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2875:188:64;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2875:188:64;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2875:188:64;;;;;;;;;2845:218;;:27;:218;;-1:-1:-1;;;;;2845:218:64;;;-1:-1:-1;;;;;;2845:218:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3166:14;;3194:30;;;;3238:19;;;;3108:159;;;;;:28;;:44;;:159;;3166:14;3194:30;3238:19;;3108:159;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3108:159:64;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3108:159:64;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3108:159:64;;;;;;;;;3074:193;;:31;:193;;-1:-1:-1;;;;;;3074:193:64;;;-1:-1:-1;;;;;3074:193:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3310:118;;;;;;;3361:14;;3310:118;;;;;;;;;;;;;;;;;;;;;;;3399:19;;;;3310:118;;;;;;;3278:29;:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3463:94;;1340:21;;-1:-1:-1;;;;3463:20:64;;;;;:94;;:::i;:::-;3439:118;;:21;:118;;;;;;;-1:-1:-1;;;;;;3439:118:64;;;-1:-1:-1;;;;;3439:118:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3439:118:64;;;;;;;;;;;;-1:-1:-1;;;;3439:118:64;;;;;;;;;;;;;;4763:14:62;;4751:9;:26;;-1:-1:-1;;;;;;4751:26:62;-1:-1:-1;;;;;4751:26:62;;;;;;;;4839:15;;;;4817:38;;;;;-1:-1:-1;;;4751:26:62;;-1:-1:-1;4817:21:62;;-1:-1:-1;4817:38:62;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4817:38:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4817:38:62;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4817:38:62;;;;;;;;;4788:68;-1:-1:-1;;;;;;4874:31:62;;4866:61;;;;;;;;;;;;;;4973:14;;4995:17;;;;;4973:40;;;;;4938:21;;-1:-1:-1;;;;;4973:21:62;;;;:40;;4995:17;4973:40;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4973:40:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4973:40:62;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4973:40:62;;;;;;;;;4938:76;-1:-1:-1;;;;;;5032:33:62;;5024:65;;;;;;;;;;;;;;5184:14;;5212:30;;;;5256:28;;;;5298:18;;;;5130:196;;;;;:24;;:40;;:196;;5184:14;;5212:30;;5130:196;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5130:196:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5130:196:62;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5130:196:62;;;;;;;;;5100:226;;:27;:226;;-1:-1:-1;;;;;;5100:226:62;;;-1:-1:-1;;;;;5100:226:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5429:14;;5475:15;;;;5504:17;;;;5371:160;;;;;:28;;:44;;:160;;5429:14;;5457:4;;5475:15;5504:17;5100:226;5371:160;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5371:160:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5371:160:62;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5371:160:62;;;;;;;;;5337:194;;:31;:194;;-1:-1:-1;;;;;;5337:194:62;;;-1:-1:-1;;;;;5337:194:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5635:14;;5663:30;;;;5707:18;;;;5574:161;;;;;:31;;:47;;:161;;5635:14;5337:194;5574:161;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5574:161:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5574:161:62;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5574:161:62;;;;;;;;;5542:193;;:29;:193;;-1:-1:-1;;;;;5542:193:62;;;-1:-1:-1;;;;;;5542:193:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5837:14;;5865:30;;;;5909:19;;;;5778:160;;;;;:29;;:45;;:160;;5837:14;;5865:30;;5909:19;5778:160;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5778:160:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5778:160:62;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5778:160:62;;;;;;;;;5746:192;;:29;:192;;-1:-1:-1;;;;;;5746:192:62;;;-1:-1:-1;;;;;5746:192:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5982:156;;;;;;;;6037:14;;5982:156;;;;;6065:30;;;;5982:156;;;;;;;;6109:19;;;;5982:156;;;;;;5949:30;:189;;;;;;;;;;;;;;;;;;;;;;6183:156;;;;;;;;6249:14;;:30;;;;;;6183:156;;;;6249:28;;;;:30;;;;;5746:29;6249:30;;;;;;:28;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;6249:30:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6249:30:62;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;6249:30:62;;;;;;;;;6183:156;;6309:19;;;;;6183:156;;;;;6149:190;;:31;:190;;;;;;;6382:205;;;;;;;;6445:14;;-1:-1:-1;;;;;6382:205:62;;;;;;;;;;;;;;;;;;;;;;;;6557:19;;6382:205;;;;;;;6350:29;:237;;-1:-1:-1;;;;;;6350:237:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6612:98;;1903:21;;6350:237;;;;6612:20;;;;;:98;;:::i;:::-;6597:113;;:12;:113;;;;;;;-1:-1:-1;;;;;;6597:113:62;;;-1:-1:-1;;;;;6597:113:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6597:113:62;;;;;;;;;;;;-1:-1:-1;;;;6597:113:62;;;;;;;;;;;;;;;;6736:97;;2102:21;;2283:1;;;;6736:20;;;;;:97;;:::i;:::-;6720:113;;:13;:113;;;;;;;-1:-1:-1;;;;;;6720:113:62;;;-1:-1:-1;;;;;6720:113:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;6720:113:62;;;;;;;;;;;;-1:-1:-1;;;;6720:113:62;;;;;;;;;;;;;;;;;950:14:48;;932:15;:32;;-1:-1:-1;;;;;;932:32:48;-1:-1:-1;;;;;932:32:48;;;;;;1065:30;;;;:38;;;;;;;-1:-1:-1;;;1065:36:48;;;-1:-1:-1;1065:36:48;;-1:-1:-1;1065:38:48;;;;;;;;;;:36;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;1065:38:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1065:38:48;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1065:38:48;;;;;;;;;-1:-1:-1;;;;;1065:52:48;;1057:124;;;;;;;;;;;;;;773:415;505:1863;;1560:562:68;1708:13;;:::i;:::-;-1:-1:-1;1851:264:68;;;;;;;;-1:-1:-1;;;;;1851:264:68;;;;;;-1:-1:-1;1851:264:68;;;;1827:7;1851:264;;;;;;;;;;;;;;;;;;1560:562::o;505:1863:48:-;;;;;;;;;-1:-1:-1;505:1863:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:134:-1:-;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:182;248:13;;266:57;248:13;266:57;;982:1445;;1104:4;1092:9;1087:3;1083:19;1079:30;1076:2;;;1122:1;1119;1112:12;1076:2;1140:20;1155:4;1140:20;;;1131:29;-1:-1;1215:1;1246:85;1327:3;1307:9;1246:85;;;1222:110;;-1:-1;1399:2;1432:60;1488:3;1464:22;;;1432:60;;;1425:4;1418:5;1414:16;1407:86;1353:151;1562:2;1595:60;1651:3;1642:6;1631:9;1627:22;1595:60;;;1588:4;1581:5;1577:16;1570:86;1514:153;1738:2;1771:95;1862:3;1853:6;1842:9;1838:22;1771:95;;;1764:4;1757:5;1753:16;1746:121;1677:201;1947:3;1981:93;2070:3;2061:6;2050:9;2046:22;1981:93;;;1974:4;1967:5;1963:16;1956:119;1888:198;2145:3;2179:60;2235:3;2226:6;2215:9;2211:22;2179:60;;;2172:4;2165:5;2161:16;2154:86;2096:155;2311:3;2345:60;2401:3;2392:6;2381:9;2377:22;2345:60;;;2338:4;2331:5;2327:16;2320:86;2261:156;1070:1357;;;;;2476:353;;2601:4;2589:9;2584:3;2580:19;2576:30;2573:2;;;2619:1;2616;2609:12;2573:2;2637:20;2652:4;2637:20;;;2628:29;-1:-1;2716:1;2747:60;2803:3;2783:9;2747:60;;;2723:85;;-1:-1;2734:5;2567:262;-1:-1;;2567:262;2890:753;;3018:4;3006:9;3001:3;2997:19;2993:30;2990:2;;;3036:1;3033;3026:12;2990:2;3054:20;3069:4;3054:20;;;3045:29;-1:-1;3129:1;3160:85;3241:3;3221:9;3160:85;;;3136:110;;-1:-1;3328:2;3361:95;3452:3;3428:22;;;3361:95;;;3354:4;3347:5;3343:16;3336:121;3267:201;3528:2;3561:60;3617:3;3608:6;3597:9;3593:22;3561:60;;;3554:4;3547:5;3543:16;3536:86;3478:155;2984:659;;;;;5333:1258;;5461:4;5449:9;5444:3;5440:19;5436:30;5433:2;;;5479:1;5476;5469:12;5433:2;5497:20;5512:4;5497:20;;;5488:29;-1:-1;5572:1;5603:85;5684:3;5664:9;5603:85;;;5579:110;;-1:-1;5773:2;5806:85;5887:3;5863:22;;;5806:85;;;5799:4;5792:5;5788:16;5781:111;5710:193;5962:2;5995:84;6075:3;6066:6;6055:9;6051:22;5995:84;;;5988:4;5981:5;5977:16;5970:110;5913:178;6150:2;6183:60;6239:3;6230:6;6219:9;6215:22;6183:60;;;6176:4;6169:5;6165:16;6158:86;6101:154;6311:3;6345:60;6401:3;6392:6;6381:9;6377:22;6345:60;;;6338:4;6331:5;6327:16;6320:86;6265:152;6475:3;6509:60;6565:3;6556:6;6545:9;6541:22;6509:60;;;6502:4;6495:5;6491:16;6484:86;6427:154;5427:1164;;;;;6647:1156;;6775:4;6763:9;6758:3;6754:19;6750:30;6747:2;;;6793:1;6790;6783:12;6747:2;6811:20;6826:4;6811:20;;;6802:29;-1:-1;6886:1;6917:85;6998:3;6978:9;6917:85;;;6893:110;;-1:-1;7083:2;7116:85;7197:3;7173:22;;;7116:85;;;7109:4;7102:5;7098:16;7091:111;7024:189;7284:2;7317:95;7408:3;7399:6;7388:9;7384:22;7317:95;;;7310:4;7303:5;7299:16;7292:121;7223:201;7488:2;7521:93;7610:3;7601:6;7590:9;7586:22;7521:93;;;7514:4;7507:5;7503:16;7496:119;7434:192;7687:3;7721:60;7777:3;7768:6;7757:9;7753:22;7721:60;;;7714:4;7707:5;7703:16;7696:86;7636:157;6741:1062;;;;;7859:1260;;7987:4;7975:9;7970:3;7966:19;7962:30;7959:2;;;8005:1;8002;7995:12;7959:2;8023:20;8038:4;8023:20;;;8014:29;-1:-1;8102:1;8133:84;8213:3;8193:9;8133:84;;;8109:109;;-1:-1;8284:2;8317:85;8398:3;8374:22;;;8317:85;;;8310:4;8303:5;8299:16;8292:111;8239:175;8487:2;8520:85;8601:3;8592:6;8581:9;8577:22;8520:85;;9126:134;9204:13;;9222:33;9204:13;9222:33;;9267:263;;9382:2;9370:9;9361:7;9357:23;9353:32;9350:2;;;9398:1;9395;9388:12;9350:2;9433:1;9450:64;9506:7;9486:9;9450:64;;;9440:74;9344:186;-1:-1;;;;9344:186;9537:308;;9674:3;9662:9;9653:7;9649:23;9645:33;9642:2;;;9691:1;9688;9681:12;9642:2;9726:1;9743:86;9821:7;9801:9;9743:86;;9852:319;;9995:2;9983:9;9974:7;9970:23;9966:32;9963:2;;;10011:1;10008;10001:12;9963:2;10046:1;10063:92;10147:7;10127:9;10063:92;;10830:320;;10973:3;10961:9;10952:7;10948:23;10944:33;10941:2;;;10990:1;10987;10980:12;10941:2;11025:1;11042:92;11126:7;11106:9;11042:92;;11157:320;;11300:3;11288:9;11279:7;11275:23;11271:33;11268:2;;;11317:1;11314;11307:12;11268:2;11352:1;11369:92;11453:7;11433:9;11369:92;;11484:320;;11627:3;11615:9;11606:7;11602:23;11598:33;11595:2;;;11644:1;11641;11634:12;11595:2;11679:1;11696:92;11780:7;11760:9;11696:92;;11811:263;;11926:2;11914:9;11905:7;11901:23;11897:32;11894:2;;;11942:1;11939;11932:12;11894:2;11977:1;11994:64;12050:7;12030:9;11994:64;;12081:200;12205:70;12269:5;12205:70;;;12200:3;12193:83;12187:94;;;13113:364;;13273:67;13337:2;13332:3;13273:67;;;13373:66;13353:87;;13468:2;13459:12;;13259:218;-1:-1;;13259:218;13486:364;;13646:67;13710:2;13705:3;13646:67;;;13746:66;13726:87;;13841:2;13832:12;;13632:218;-1:-1;;13632:218;13859:465;;14019:67;14083:2;14078:3;14019:67;;;14119:66;14099:87;;14220:66;14215:2;14206:12;;14199:88;14315:2;14306:12;;14005:319;-1:-1;;14005:319;14332:113;14415:24;14433:5;14415:24;;14580:827;14878:3;14863:19;;14893:114;14867:9;14980:6;14893:114;;;15018:105;15119:2;15108:9;15104:18;15095:6;15018:105;;;15134:80;15210:2;15199:9;15195:18;15186:6;15134:80;;;15225;15301:2;15290:9;15286:18;15277:6;15225:80;;;15316:81;15392:3;15381:9;15377:19;15368:6;15316:81;;;14849:558;;;;;;;;;15414:707;15684:3;15669:19;;15699:104;15673:9;15776:6;15699:104;;;15814:115;15925:2;15914:9;15910:18;15901:6;15814:115;;;15940:80;16016:2;16005:9;16001:18;15992:6;15940:80;;;16031;16107:2;16096:9;16092:18;16083:6;16031:80;;;15655:466;;;;;;;;16128:773;16431:3;16416:19;;16446:104;16420:9;16523:6;16446:104;;;16561:115;16672:2;16661:9;16657:18;16648:6;16561:115;;;16687:113;16796:2;16785:9;16781:18;16772:6;16687:113;;16908:587;17150:2;17135:18;;17164:104;17139:9;17241:6;17164:104;;;17279:115;17390:2;17379:9;17375:18;17366:6;17279:115;;;17405:80;17481:2;17470:9;17466:18;17457:6;17405:80;;17502:407;17693:2;17707:47;;;17678:18;;17768:131;17678:18;17768:131;;17916:407;18107:2;18121:47;;;18092:18;;18182:131;18092:18;18182:131;;18330:407;18521:2;18535:47;;;18506:18;;18596:131;18506:18;18596:131;;18744:213;18862:2;18847:18;;18876:71;18851:9;18920:6;18876:71;;18964:256;19026:2;19020:9;19052:17;;;-1:-1;;;;;19112:34;;19148:22;;;19109:62;19106:2;;;19184:1;19181;19174:12;19106:2;19200;19193:22;19004:216;;-1:-1;19004:216;19228:163;19331:19;;;19380:4;19371:14;;19324:67;19399:91;;19461:24;19479:5;19461:24;;19497:115;;19583:24;19601:5;19583:24;;20006:121;-1:-1;;;;;20068:54;;20051:76;20134:72;20196:5;20179:27;21917:117;21986:24;22004:5;21986:24;;;21979:5;21976:35;21966:2;;22025:1;22022;22015:12;21966:2;21960:74;;22041:165;22134:48;22176:5;22134:48;;22771:117;22840:24;22858:5;22840:24;;22814:74;505:1863:48;;;;;;",
  "deployedSourceMap": "505:1863:48:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3713:419:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3713:419:64;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4484:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4484:222:64;;;;;;;;:::i;:::-;;10816:231:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10816:231:62;;;;;;;;:::i;12946:203::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12946:203:62;;;;;;;;:::i;9895:332::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9895:332:62;;;;;;;;:::i;12689:107::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12689:107:62;;;:::i;:::-;;;;;;;;7609:264;;;;;;;;;:::i;1409:332:48:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1409:332:48;;;;;;;;:::i;4811:295:64:-;;;;;;;;;:::i;12162:105:62:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12162:105:62;;;:::i;2055:68::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2055:68:62;;;:::i;2200:166:48:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2200:166:48;;;;;;;;:::i;:::-;;;;;;;;2233:51:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2233:51:62;;;:::i;:::-;;;;;;;;8689:327;;;;;;;;;:::i;12423:195::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12423:195:62;;;;;;;;:::i;1826:288:48:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1826:288:48;;;;;;;;:::i;11467:166:62:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11467:166:62;;;;;;;;:::i;10406:232::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10406:232:62;;;;;;;;:::i;1296:65:64:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1296:65:64;;;:::i;1855:69:62:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1855:69:62;;;:::i;7007:420::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7007:420:62;;;;;;;;:::i;:::-;;;;;;;;5209:226:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5209:226:64;;;;;;;;:::i;8120:324:62:-;;;;;;;;;:::i;9198:240::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9198:240:62;;;;;;;;:::i;4207:123:64:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4207:123:64;;;:::i;3713:419::-;3787:42;3841:48;3932:7;;:14;;3892:55;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;3841:106:64;-1:-1:-1;3962:6:64;3957:147;3974:18;;;3957:147;;;4012:14;4029:7;;4037:1;4029:10;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4064:29:64;;;:15;:29;;;;;;;;;;;;4053:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:8;;4012:27;;-1:-1:-1;4053:40:64;:5;;4059:1;;4053:8;;;;;;;;;;;;;;;:40;-1:-1:-1;3994:3:64;;3957:147;;;-1:-1:-1;4120:5:64;-1:-1:-1;3713:419:64;;;;;:::o;4484:222::-;4562:9;;;;;;;;;-1:-1:-1;;;;;4562:9:64;-1:-1:-1;;;;;4562:23:64;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4562:25:64;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4562:25:64;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4562:25:64;;;;;;;;;109:10:91;-1:-1:-1;;;;;109:20:91;;;101:63;;;;-1:-1:-1;;;101:63:91;;;;;;;;;;;;;;;;;4599:49:64;:21;4636:11;4599:49;:36;:49;:::i;:::-;4663:36;4687:11;4663:36;;;;;;;;;;;;;;;4484:222;;:::o;10816:231:62:-;10958:9;;;;;;;;;-1:-1:-1;;;;;10958:9:62;462:18:89;-1:-1:-1;;;;;462:39:89;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;462:41:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;10983:34:62;;;;;;;;:30;:34;-1:-1:-1;;;;;10983:34:62;;;;;;;;;;;;;;;;;;:57;;-1:-1:-1;;;10983:57:62;;:34;;-1:-1:-1;10983:34:62;;-1:-1:-1;10983:57:62;;:34;11018:15;;11035:4;;10983:57;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10983:57:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10983:57:62;;;;524:18:89;-1:-1:-1;;;;;524:41:89;;:43;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;524:43:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;524:43:89;;;;10816:231:62;;:::o;12946:203::-;13016:9;;;;;;;;;-1:-1:-1;;;;;13016:9:62;-1:-1:-1;;;;;13016:23:62;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13016:25:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13016:25:62;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13016:25:62;;;;;;;;;109:10:91;-1:-1:-1;;;;;109:20:91;;;101:63;;;;-1:-1:-1;;;101:63:91;;;;;;;;;13053:41:62;:13;13082:11;13053:41;:28;:41;:::i;:::-;13109:33;13130:11;13109:33;;;;;;;9895:332;10088:9;;;;;;;;;-1:-1:-1;;;;;10088:9:62;462:18:89;-1:-1:-1;;;;;462:39:89;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;462:41:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;10113:37:62;;;;;;;;:29;:37;-1:-1:-1;;;;;10113:37:62;;;;;;;;;;;;;;;;;;:107;;-1:-1:-1;;;10113:107:62;;:37;;-1:-1:-1;10113:37:62;;-1:-1:-1;10113:107:62;;:37;10151:15;;10168:10;;10180:13;;10195:24;;10113:107;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10113:107:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10113:107:62;;;;524:18:89;-1:-1:-1;;;;;524:41:89;;:43;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;524:43:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;524:43:89;;;;9895:332:62;;;;:::o;12689:107::-;12765:22;;;;;;;;:13;:22;-1:-1:-1;;;;;12765:22:62;;;;;-1:-1:-1;;;12765:22:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12765:22:62;;;;;;;;;;12739:7;;12765:24;;:22;:24::i;:::-;12758:31;;12689:107;:::o;7609:264::-;7745:9;;;;;;;;;-1:-1:-1;;;;;7745:9:62;462:18:89;-1:-1:-1;;;;;462:39:89;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;462:41:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;462:41:89;;;;7778:18:62;:16;:18::i;:::-;-1:-1:-1;;;;;54:131:92;124:6;111:9;:19;103:64;;;;-1:-1:-1;;;103:64:92;;;;;;;;;7812:31:62;;;;;;;;:27;:31;-1:-1:-1;;;;;7812:31:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:54;;-1:-1:-1;;;7812:54:62;;:31;;;;:54;;:31;7844:15;;7861:4;;7812:31;:54;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7812:54:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7812:54:62;;;;513:1:89;524:18;-1:-1:-1;;;;;524:41:89;;:43;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;1409:332:48;1496:15;;-1:-1:-1;;;;;1496:15:48;109:10:91;:20;;101:63;;;;-1:-1:-1;;;101:63:91;;;;;;;;;1528:29:48;1550:6;1528:21;:29::i;:::-;1524:211;;;1573:60;1619:6;1627:5;1573:45;:60::i;:::-;1524:211;;;1664:60;1710:6;1718:5;1664:45;:60::i;:::-;1409:332;;;;:::o;4811:295:64:-;4969:9;;;;;;;;;-1:-1:-1;;;;;4969:9:64;462:18:89;-1:-1:-1;;;;;462:39:89;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;462:41:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;462:41:89;;;;5002:27:64;:25;:27::i;:::-;-1:-1:-1;;;;;54:131:92;124:6;111:9;:19;103:64;;;;-1:-1:-1;;;103:64:92;;;;;;;;;5045:31:64;;;;;;;;:27;:31;-1:-1:-1;;;;;5045:31:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:54;;-1:-1:-1;;;5045:54:64;;:31;;;;:54;;:31;;-1:-1:-1;;5094:4:64;;5045:54;;;12162:105:62;12237:21;;;;;;;;:12;:21;-1:-1:-1;;;;;12237:21:62;;;;;-1:-1:-1;;;12237:21:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;12237:21:62;;;;;;;;;;12211:7;;12237:23;;:21;:23::i;2055:68::-;2102:21;2055:68;:::o;2200:166:48:-;2295:7;2325:34;2350:8;2325:24;:34::i;:::-;2318:41;;2200:166;;;;:::o;2233:51:62:-;2283:1;2233:51;:::o;8689:327::-;8871:9;;;;;;;;;-1:-1:-1;;;;;8871:9:62;462:18:89;-1:-1:-1;;;;;462:39:89;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;462:41:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;462:41:89;;;;8904:19:62;:17;:19::i;:::-;-1:-1:-1;;;;;54:131:92;124:6;111:9;:19;103:64;;;;-1:-1:-1;;;103:64:92;;;;;;;;;8939:47:62;;;;;;;;:31;:47;-1:-1:-1;;;;;8939:47:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:70;;-1:-1:-1;;;8939:70:62;;:47;;;;:70;;:47;8987:15;;9004:4;;8939:47;:70;;;12423:195;12492:9;;;;;;;;;-1:-1:-1;;;;;12492:9:62;-1:-1:-1;;;;;12492:23:62;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12492:25:62;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12492:25:62;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;12492:25:62;;;;;;;;;109:10:91;-1:-1:-1;;;;;109:20:91;;;101:63;;;;-1:-1:-1;;;101:63:91;;;;;;;;;12529:40:62;:12;12557:11;12529:40;:27;:40;:::i;:::-;12584:27;12599:11;12584:27;;;;;;;1826:288:48;1956:7;1979:30;;:::i;:::-;2012:23;2026:8;2012:13;:23::i;:::-;1979:56;;2052:55;2077:10;2089:8;2099:7;2052:24;:55::i;:::-;2045:62;;;1826:288;;;;;;:::o;11467:166:62:-;11545:9;;;;;;;;;-1:-1:-1;;;;;11545:9:62;462:18:89;-1:-1:-1;;;;;462:39:89;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;462:41:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11566:35:62;;;;;;;;:31;:35;;;;;;;;;:60;;-1:-1:-1;;;11566:60:62;;:35;;-1:-1:-1;11566:35:62;;-1:-1:-1;11566:60:62;;:35;11602:15;;11619:6;;11566:60;;;;10406:232;10550:9;;;;;;;;;-1:-1:-1;;;;;10550:9:62;462:18:89;-1:-1:-1;;;;;462:39:89;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;462:41:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;10575:33:62;;;;;;;;:29;:33;;-1:-1:-1;;;;;10575:33:62;;;;;;;;;;;;;;;;;;:56;;-1:-1:-1;;;10575:56:62;;:33;;-1:-1:-1;10575:33:62;;-1:-1:-1;10575:56:62;;:33;10609:15;;10626:4;;10575:56;;;;1296:65:64;1340:21;1296:65;:::o;1855:69:62:-;1903:21;1855:69;:::o;7007:420::-;7081:42;7135:48;7226:7;;:14;;7186:55;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;7135:106:62;-1:-1:-1;7256:6:62;7251:148;7268:18;;;7251:148;;;7307:14;7324:7;;7332:1;7324:10;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7359:29:62;;:21;:29;;;:15;:29;;;;;;;;7348:40;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7348:40:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7359:29;;-1:-1:-1;7348:40:62;;7359:29;;7348:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7348:40:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7348:40:62;;;-1:-1:-1;7348:40:62;;;;;;;;;;;;;;;;;;-1:-1:-1;7348:40:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7348:40:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7348:40:62;;;-1:-1:-1;7348:40:62;;;;-1:-1:-1;;;;;7348:40:62;;;;;;;;;;;;;;;;;;;;;;;:8;;:5;;7354:1;;7348:8;;;;;;;;;;;;;;;:40;-1:-1:-1;7288:3:62;;7251:148;;5209:226:64;5345:9;;;;;;;;;-1:-1:-1;;;;;5345:9:64;462:18:89;-1:-1:-1;;;;;462:39:89;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;462:41:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5370:35:64;;;;;;;;:31;:35;-1:-1:-1;;;;;5370:35:64;;;;;;;;;;;;;;;;;;:58;;-1:-1:-1;;;5370:58:64;;:35;;-1:-1:-1;5370:35:64;;-1:-1:-1;5370:58:64;;:35;-1:-1:-1;;5423:4:64;;5370:58;;;;8120:324:62;8300:9;;;;;;;;;-1:-1:-1;;;;;8300:9:62;462:18:89;-1:-1:-1;;;;;462:39:89;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;462:41:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;462:41:89;;;;8333:19:62;:17;:19::i;:::-;-1:-1:-1;;;;;54:131:92;124:6;111:9;:19;103:64;;;;-1:-1:-1;;;103:64:92;;;;;;;;;8368:46:62;;;;;;;;:31;:46;-1:-1:-1;;;;;8368:46:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:69;;-1:-1:-1;;;8368:69:62;;:46;;;;:69;;:46;8415:15;;8432:4;;8368:46;:69;;;9198:240;9344:9;;;;;;;;;-1:-1:-1;;;;;9344:9:62;462:18:89;-1:-1:-1;;;;;462:39:89;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;462:41:89;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;9369:39:62;;;;;;;;:29;:39;-1:-1:-1;;;;;9369:39:62;;;;;;;;;;;;;;;;;;:62;;-1:-1:-1;;;9369:62:62;;:39;;-1:-1:-1;9369:39:62;;-1:-1:-1;9369:62:62;;:39;9409:15;;9426:4;;9369:62;;;;4207:123:64;4291:30;;;;;;;;:21;:30;-1:-1:-1;;;;;4291:30:64;;;;;-1:-1:-1;;;4291:30:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4291:30:64;;;;;;;;;;4265:7;;4291:32;;:30;:32::i;2307:381:68:-;2392:35;;;;;;;;;;-1:-1:-1;;;;;2392:35:68;;;;;-1:-1:-1;;;2392:35:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2392:35:68;;;;;;;;;;;;2415:11;2392:16;:35::i;:::-;2442:20;;-1:-1:-1;;;2442:20:68;;-1:-1:-1;;;;;2442:20:68;:25;;;;:60;;-1:-1:-1;2478:24:68;;;;-1:-1:-1;;;;;2478:24:68;2471:3;:31;;2442:60;2438:135;;;2542:20;;-1:-1:-1;;;2542:20:68;;-1:-1:-1;;;;;2542:20:68;-1:-1:-1;;;;;;2518:44:68;;;;;;2438:135;2582:34;;-1:-1:-1;;;;;2582:34:68;;;-1:-1:-1;;;2582:34:68;;;;;;-1:-1:-1;2626:24:68;:55;;-1:-1:-1;;;;;;2626:55:68;-1:-1:-1;;;;;2660:3:68;598:6;2653:28;2626:55;;;;2307:381::o;2753:233::-;2814:7;2843:4;:24;;;-1:-1:-1;;;;;2837:30:68;:3;:30;2833:147;;;-1:-1:-1;2890:21:68;;2883:28;;2833:147;-1:-1:-1;2949:20:68;;;;2942:27;;281:118:69;345:4;368:19;-1:-1:-1;;;;;368:14:69;;383:3;368:19;:14;:19;:::i;:::-;:24;;;;281:118;-1:-1:-1;;281:118:69:o;5729:151:64:-;5808:33;;;;;;;;:29;:33;-1:-1:-1;;;;;5808:33:64;;;;;;;;;;;;;;;;;;;;;;;;;;:65;;-1:-1:-1;;;5808:65:64;;:33;;;;:65;;:33;-1:-1:-1;;5859:6:64;;5867:5;;5808:65;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5808:65:64;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;11935:151:62;12014:33;;;;;;;;:29;:33;-1:-1:-1;;;;;12014:33:62;;;;;;;;;;;;;;;;;;;;;;;;;;:65;;-1:-1:-1;;;12014:65:62;;:33;;;;:65;;:33;12048:15;;12065:6;;12073:5;;12014:65;;;;1785:164:69;1901:19;;;;;;1858:7;;1892:49;;1925:3;1893:35;1937:3;1892:49;:44;:49;:::i;2150:491:93:-;2202:15;;:::i;:::-;410:10;2248:18;;;;464:5;2295:18;;;2294:32;;;;2364:15;;805:59;2399:25;;;2391:90;;;;-1:-1:-1;;;2391:90:93;;;;;;;;;666:11;2499:7;:23;;2491:70;;;;-1:-1:-1;;;2491:70:93;;;;;;;;;2578:56;;;;;;;;-1:-1:-1;;;;;2578:56:93;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2150:491:93;;;:::o;1140:480:69:-;1317:7;1344:10;1340:191;;;1370:16;1416:8;1426:17;:8;:15;:17::i;:::-;1399:45;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1399:45:69;;;1389:56;;;;;;1370:75;;1466:54;1489:8;1499;:20;;;1466:22;:54::i;:::-;1459:61;;;;;1340:191;1548:65;1581:8;1571:19;;;;;;1592:8;:20;;;1548:22;:65::i;:::-;1541:72;1140:480;-1:-1:-1;;;;1140:480:69:o;2992:417:68:-;3082:23;3108:14;3117:4;3108:8;:14::i;:::-;3082:40;;3154:1;3140:11;-1:-1:-1;;;;;3140:15:68;;3132:52;;;;-1:-1:-1;;;3132:52:68;;;;;;;;;3235:4;:22;;;3217:40;;:15;-1:-1:-1;;;;;3217:40:68;;;;;;;-1:-1:-1;;;;;3202:55:68;:11;-1:-1:-1;;;;;3202:55:68;;;3194:88;;;;-1:-1:-1;;;3194:88:68;;;;;;;;;3351:4;:25;;;3324:52;;3332:15;-1:-1:-1;;;;;3324:24:68;:52;3308:11;-1:-1:-1;;;;;3300:20:68;:76;;3292:110;;;;-1:-1:-1;;;3292:110:68;;;;;;;;;2992:417;;;:::o;1134:150:88:-;1257:15;;;1275:1;1257:19;;1134:150::o;425:144::-;180:1;549:13;;;;;;541:21;;425:144::o;1698:315:93:-;1758:7;537:1;464:5;525:13;1785:3;:15;;;:35;;;;1777:68;;;;-1:-1:-1;;;1777:68:93;;;;;;;;;1863:12;;805:59;-1:-1:-1;;;;;1863:29:93;;;;;1855:62;;;;-1:-1:-1;;;1855:62:93;;;;;;;;;-1:-1:-1;1991:15:93;;;;1965:11;;;;1935:12;;-1:-1:-1;;;;;1935:27:93;410:10;1935:27;:71;1965:23;;;464:5;1965:23;1935:53;:71;;;1698:315;;;:::o;1955:373:69:-;2071:7;2132:3;2112:23;;;-1:-1:-1;;;2165:3:69;2140:28;;;;2111:58;;-1:-1:-1;;;;;2237:22:69;;:32;;2229:61;;;;-1:-1:-1;;;2229:61:69;;;;;;;;505:1863:48;;;;;;;;;-1:-1:-1;505:1863:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;505:1863:48;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;505:1863:48;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;505:1863:48;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;505:1863:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;142:134;220:13;;238:33;220:13;238:33;;299:685;;417:3;410:4;402:6;398:17;394:27;384:2;;435:1;432;425:12;384:2;472:6;459:20;494:81;509:65;567:6;509:65;;;494:81;;;603:21;;;647:4;635:17;;;;485:90;;-1:-1;660:14;;635:17;755:1;740:238;765:6;762:1;759:13;740:238;;;848:3;835:17;827:6;823:30;872:42;910:3;898:10;872:42;;;860:55;;-1:-1;938:4;929:14;;;;957;;;;;787:1;780:9;740:238;;;744:14;377:607;;;;;;;;1010:352;;;1140:3;1133:4;1125:6;1121:17;1117:27;1107:2;;1158:1;1155;1148:12;1107:2;-1:-1;1178:20;;-1:-1;;;;;1207:30;;1204:2;;;1250:1;1247;1240:12;1204:2;1284:4;1276:6;1272:17;1260:29;;1335:3;1327:4;1319:6;1315:17;1305:8;1301:32;1298:41;1295:2;;;1352:1;1349;1342:12;1295:2;1100:262;;;;;;1388:699;;1501:3;1494:4;1486:6;1482:17;1478:27;1468:2;;1519:1;1516;1509:12;1468:2;1556:6;1543:20;1578:76;1593:60;1646:6;1593:60;;1578:76;1569:85;;1671:5;1696:6;1689:5;1682:21;1726:4;1718:6;1714:17;1704:27;;1748:4;1743:3;1739:14;1732:21;;1801:6;1848:3;1840:4;1832:6;1828:17;1823:3;1819:27;1816:36;1813:2;;;1865:1;1862;1855:12;1813:2;1890:1;1875:206;1900:6;1897:1;1894:13;1875:206;;;1958:3;1980:37;2013:3;2001:10;1980:37;;;1968:50;;-1:-1;2041:4;2032:14;;;;2060;;;;;1922:1;1915:9;1875:206;;2095:124;2159:20;;2184:30;2159:20;2184:30;;2226:130;2293:20;;2318:33;2293:20;2318:33;;2364:432;;2461:3;2454:4;2446:6;2442:17;2438:27;2428:2;;2479:1;2476;2469:12;2428:2;2516:6;2503:20;2538:60;2553:44;2590:6;2553:44;;2538:60;2529:69;;2618:6;2611:5;2604:21;2654:4;2646:6;2642:17;2687:4;2680:5;2676:16;2722:3;2713:6;2708:3;2704:16;2701:25;2698:2;;;2739:1;2736;2729:12;2698:2;2749:41;2783:6;2778:3;2773;2749:41;;;2421:375;;;;;;;;3320:2054;;3451:5;3439:9;3434:3;3430:19;3426:31;3423:2;;;3470:1;3467;3460:12;3423:2;3488:21;3503:5;3488:21;;;3479:30;-1:-1;3562:31;;-1:-1;;;;;3602:30;;3599:2;;;3645:1;3642;3635:12;3599:2;3679:54;3729:3;3720:6;3709:9;3705:22;3679:54;;;3655:79;;-1:-1;3803:2;3836:49;3881:3;3857:22;;;3836:49;;;3829:4;3822:5;3818:16;3811:75;3755:142;3981:2;3970:9;3966:18;3953:32;-1:-1;;;;;3997:6;3994:30;3991:2;;;4037:1;4034;4027:12;3991:2;4072:54;4122:3;4113:6;4102:9;4098:22;4072:54;;;4065:4;4058:5;4054:16;4047:80;3907:231;4204:2;4237:48;4281:3;4272:6;4261:9;4257:22;4237:48;;;4230:4;4223:5;4219:16;4212:74;4148:149;4382:3;4371:9;4367:19;4354:33;-1:-1;;;;;4399:6;4396:30;4393:2;;;4439:1;4436;4429:12;4393:2;4474:54;4524:3;4515:6;4504:9;4500:22;4474:54;;;4467:4;4460:5;4456:16;4449:80;4307:233;4607:3;4641:48;4685:3;4676:6;4665:9;4661:22;4641:48;;;4634:4;4627:5;4623:16;4616:74;4550:151;4761:3;4795:49;4840:3;4831:6;4820:9;4816:22;4795:49;;;4788:4;4781:5;4777:16;4770:75;4711:145;4955:3;4944:9;4940:19;4927:33;-1:-1;;;;;4972:6;4969:30;4966:2;;;5012:1;5009;5002:12;4966:2;5047:54;5097:3;5088:6;5077:9;5073:22;5047:54;;;5040:4;5033:5;5029:16;5022:80;4866:247;5205:3;5194:9;5190:19;5177:33;-1:-1;;;;;5222:6;5219:30;5216:2;;;5262:1;5259;5252:12;5216:2;5298:54;5348:3;5339:6;5328:9;5324:22;5298:54;;;5290:5;5283;5279:17;5272:81;5123:241;3417:1957;;;;;5448:1798;;5579:5;5567:9;5562:3;5558:19;5554:31;5551:2;;;5598:1;5595;5588:12;5551:2;5616:21;5631:5;5616:21;;;5607:30;-1:-1;5693:31;;-1:-1;;;;;5733:30;;5730:2;;;5776:1;5773;5766:12;5730:2;5810:54;5860:3;5851:6;5840:9;5836:22;5810:54;;;5786:79;;-1:-1;5942:2;5975:48;6019:3;5995:22;;;5975:48;;;5968:4;5961:5;5957:16;5950:74;5886:149;6122:2;6111:9;6107:18;6094:32;-1:-1;;;;;6138:6;6135:30;6132:2;;;6178:1;6175;6168:12;6132:2;6213:54;6263:3;6254:6;6243:9;6239:22;6213:54;;;6206:4;6199:5;6195:16;6188:80;6045:234;6348:2;6381:48;6425:3;6416:6;6405:9;6401:22;6381:48;;;6374:4;6367:5;6363:16;6356:74;6289:152;6535:3;6524:9;6520:19;6507:33;-1:-1;;;;;6552:6;6549:30;6546:2;;;6592:1;6589;6582:12;6546:2;6627:54;6677:3;6668:6;6657:9;6653:22;6627:54;;;6620:4;6613:5;6609:16;6602:80;6451:242;6774:3;6763:9;6759:19;6746:33;-1:-1;;;;;6791:6;6788:30;6785:2;;;6831:1;6828;6821:12;6785:2;6866:54;6916:3;6907:6;6896:9;6892:22;6866:54;;;6859:4;6852:5;6848:16;6841:80;6703:229;6990:3;7024:49;7069:3;7060:6;7049:9;7045:22;7024:49;;;7017:4;7010:5;7006:16;6999:75;6942:143;7141:3;7175:49;7220:3;7211:6;7200:9;7196:22;7175:49;;;7168:4;7161:5;7157:16;7150:75;7095:141;5545:1701;;;;;7317:1651;;7445:4;7433:9;7428:3;7424:19;7420:30;7417:2;;;7463:1;7460;7453:12;7417:2;7481:20;7496:4;7481:20;;;7472:29;-1:-1;7557:31;;-1:-1;;;;;7597:30;;7594:2;;;7640:1;7637;7630:12;7594:2;7674:54;7724:3;7715:6;7704:9;7700:22;7674:54;;;7650:79;;-1:-1;7838:2;7823:18;;7810:32;-1:-1;;;;;7851:30;;7848:2;;;7894:1;7891;7884:12;7848:2;7929:54;7979:3;7970:6;7959:9;7955:22;7929:54;;;7922:4;7915:5;7911:16;7904:80;7750:245;8054:2;8087:49;8132:3;8123:6;8112:9;8108:22;8087:49;;;8080:4;8073:5;8069:16;8062:75;8005:143;8235:2;8224:9;8220:18;8207:32;-1:-1;;;;;8251:6;8248:30;8245:2;;;8291:1;8288;8281:12;8245:2;8326:54;8376:3;8367:6;8356:9;8352:22;8326:54;;;8319:4;8312:5;8308:16;8301:80;8158:234;8461:3;8495:48;8539:3;8530:6;8519:9;8515:22;8495:48;;;8488:4;8481:5;8477:16;8470:74;8402:153;8649:3;8638:9;8634:19;8621:33;-1:-1;;;;;8666:6;8663:30;8660:2;;;8706:1;8703;8696:12;8660:2;8741:54;8791:3;8782:6;8771:9;8767:22;8741:54;;;8734:4;8727:5;8723:16;8716:80;8565:242;8863:3;8897:49;8942:3;8933:6;8922:9;8918:22;8897:49;;;8890:4;8883:5;8879:16;8872:75;8817:141;7411:1557;;;;;9044:1364;;9177:4;9165:9;9160:3;9156:19;9152:30;9149:2;;;9195:1;9192;9185:12;9149:2;9213:20;9228:4;9213:20;;;9204:29;-1:-1;9285:1;9316:49;9361:3;9341:9;9316:49;;;9292:74;;-1:-1;9460:2;9445:18;;9432:32;-1:-1;;;;;9473:30;;9470:2;;;9516:1;9513;9506:12;9470:2;9551:54;9601:3;9592:6;9581:9;9577:22;9551:54;;;9544:4;9537:5;9533:16;9526:80;9387:230;9702:2;9691:9;9687:18;9674:32;-1:-1;;;;;9718:6;9715:30;9712:2;;;9758:1;9755;9748:12;9712:2;9793:54;9843:3;9834:6;9823:9;9819:22;9793:54;;;9786:4;9779:5;9775:16;9768:80;9627:232;9915:2;9948:48;9992:3;9983:6;9972:9;9968:22;9948:48;;;9941:4;9934:5;9930:16;9923:74;9869:139;10089:3;10078:9;10074:19;10061:33;-1:-1;;;;;10106:6;10103:30;10100:2;;;10146:1;10143;10136:12;10100:2;10181:54;10231:3;10222:6;10211:9;10207:22;10181:54;;;10174:4;10167:5;10163:16;10156:80;10018:229;10303:3;10337:49;10382:3;10373:6;10362:9;10358:22;10337:49;;;10330:4;10323:5;10319:16;10312:75;10257:141;9143:1265;;;;;10491:594;;10631:4;10619:9;10614:3;10610:19;10606:30;10603:2;;;10649:1;10646;10639:12;10603:2;10667:20;10682:4;10667:20;;;10658:29;-1:-1;10743:31;;-1:-1;;;;;10783:30;;10780:2;;;10826:1;10823;10816:12;10780:2;10860:54;10910:3;10901:6;10890:9;10886:22;10860:54;;;10836:79;;-1:-1;10982:2;11015:48;11059:3;11035:22;;;11015:48;;;11008:4;11001:5;10997:16;10990:74;10936:139;10597:488;;;;;11829:1493;;11950:4;11938:9;11933:3;11929:19;11925:30;11922:2;;;11968:1;11965;11958:12;11922:2;11986:20;12001:4;11986:20;;;11977:29;-1:-1;12062:31;;-1:-1;;;;;12102:30;;12099:2;;;12145:1;12142;12135:12;12099:2;12179:54;12229:3;12220:6;12209:9;12205:22;12179:54;;;12155:79;;-1:-1;12327:2;12312:18;;12299:32;-1:-1;;;;;12340:30;;12337:2;;;12383:1;12380;12373:12;12337:2;12418:75;12489:3;12480:6;12469:9;12465:22;12418:75;;;12411:4;12404:5;12400:16;12393:101;12255:250;12592:2;12581:9;12577:18;12564:32;-1:-1;;;;;12608:6;12605:30;12602:2;;;12648:1;12645;12638:12;12602:2;12683:70;12749:3;12740:6;12729:9;12725:22;12683:70;;;12676:4;12669:5;12665:16;12658:96;12515:250;12862:2;12851:9;12847:18;12834:32;-1:-1;;;;;12878:6;12875:30;12872:2;;;12918:1;12915;12908:12;12872:2;12953:75;13024:3;13015:6;13004:9;13000:22;12953:75;;;12946:4;12939:5;12935:16;12928:101;12775:265;13133:3;13122:9;13118:19;13105:33;-1:-1;;;;;13150:6;13147:30;13144:2;;;13190:1;13187;13180:12;13144:2;13225:75;13296:3;13287:6;13276:9;13272:22;13225:75;;;13218:4;13211:5;13207:16;13200:101;13050:262;11916:1406;;;;;13394:835;;13523:4;13511:9;13506:3;13502:19;13498:30;13495:2;;;13541:1;13538;13531:12;13495:2;13559:20;13574:4;13559:20;;;13550:29;-1:-1;13632:1;13663:49;13708:3;13688:9;13663:49;;;13639:74;;-1:-1;13809:2;13794:18;;13781:32;-1:-1;;;;;13822:30;;13819:2;;;13865:1;13862;13855:12;13819:2;13900:54;13950:3;13941:6;13930:9;13926:22;13900:54;;;13893:4;13886:5;13882:16;13875:80;13734:232;14062:2;14051:9;14047:18;14034:32;-1:-1;;;;;14078:6;14075:30;14072:2;;;14118:1;14115;14108:12;14072:2;14153:54;14203:3;14194:6;14183:9;14179:22;14153:54;;;14146:4;14139:5;14135:16;14128:80;13976:243;13489:740;;;;;14236:130;14303:20;;14328:33;14303:20;14328:33;;14373:128;14439:20;;14464:32;14439:20;14464:32;;14508:130;14575:20;;14600:33;14575:20;14600:33;;14782:263;;14897:2;14885:9;14876:7;14872:23;14868:32;14865:2;;;14913:1;14910;14903:12;14865:2;14948:1;14965:64;15021:7;15001:9;14965:64;;15052:397;;;15191:2;15179:9;15170:7;15166:23;15162:32;15159:2;;;15207:1;15204;15197:12;15159:2;15242:31;;-1:-1;;;;;15282:30;;15279:2;;;15325:1;15322;15315:12;15279:2;15353:80;15425:7;15416:6;15405:9;15401:22;15353:80;;;15343:90;;;;15221:218;15153:296;;;;;;15456:589;;;;15600:2;15588:9;15579:7;15575:23;15571:32;15568:2;;;15616:1;15613;15606:12;15568:2;15651:1;15668:50;15710:7;15690:9;15668:50;;;15658:60;;15630:94;15783:2;15772:9;15768:18;15755:32;-1:-1;;;;;15799:6;15796:30;15793:2;;;15839:1;15836;15829:12;15793:2;15859:62;15913:7;15904:6;15893:9;15889:22;15859:62;;;15849:72;;15734:193;15958:2;15976:53;16021:7;16012:6;16001:9;15997:22;15976:53;;;15966:63;;15937:98;15562:483;;;;;;16052:345;;16165:2;16153:9;16144:7;16140:23;16136:32;16133:2;;;16181:1;16178;16171:12;16133:2;16216:31;;-1:-1;;;;;16256:30;;16253:2;;;16299:1;16296;16289:12;16253:2;16319:62;16373:7;16364:6;16353:9;16349:22;16319:62;;16404:699;;;;16560:2;16548:9;16539:7;16535:23;16531:32;16528:2;;;16576:1;16573;16566:12;16528:2;16611:31;;-1:-1;;;;;16651:30;;16648:2;;;16694:1;16691;16684:12;16648:2;16714:62;16768:7;16759:6;16748:9;16744:22;16714:62;;;16704:72;;16590:192;16813:2;16831:53;16876:7;16867:6;16856:9;16852:22;16831:53;;;16821:63;;16792:98;16949:2;16938:9;16934:18;16921:32;-1:-1;;;;;16965:6;16962:30;16959:2;;;17005:1;17002;16995:12;16959:2;17025:62;17079:7;17070:6;17059:9;17055:22;17025:62;;17110:411;;17256:2;17244:9;17235:7;17231:23;17227:32;17224:2;;;17272:1;17269;17262:12;17224:2;17307:31;;-1:-1;;;;;17347:30;;17344:2;;;17390:1;17387;17380:12;17344:2;17410:95;17497:7;17488:6;17477:9;17473:22;17410:95;;17528:411;;17674:2;17662:9;17653:7;17649:23;17645:32;17642:2;;;17690:1;17687;17680:12;17642:2;17725:31;;-1:-1;;;;;17765:30;;17762:2;;;17808:1;17805;17798:12;17762:2;17828:95;17915:7;17906:6;17895:9;17891:22;17828:95;;17946:405;;18089:2;18077:9;18068:7;18064:23;18060:32;18057:2;;;18105:1;18102;18095:12;18057:2;18140:31;;-1:-1;;;;;18180:30;;18177:2;;;18223:1;18220;18213:12;18177:2;18243:92;18327:7;18318:6;18307:9;18303:22;18243:92;;18358:415;;18506:2;18494:9;18485:7;18481:23;18477:32;18474:2;;;18522:1;18519;18512:12;18474:2;18557:31;;-1:-1;;;;;18597:30;;18594:2;;;18640:1;18637;18630:12;18594:2;18660:97;18749:7;18740:6;18729:9;18725:22;18660:97;;18780:429;;18935:2;18923:9;18914:7;18910:23;18906:32;18903:2;;;18951:1;18948;18941:12;18903:2;18986:31;;-1:-1;;;;;19026:30;;19023:2;;;19069:1;19066;19059:12;19023:2;19089:104;19185:7;19176:6;19165:9;19161:22;19089:104;;19654:391;;19790:2;19778:9;19769:7;19765:23;19761:32;19758:2;;;19806:1;19803;19796:12;19758:2;19841:31;;-1:-1;;;;;19881:30;;19878:2;;;19924:1;19921;19914:12;19878:2;19944:85;20021:7;20012:6;20001:9;19997:22;19944:85;;20052:407;;20196:2;20184:9;20175:7;20171:23;20167:32;20164:2;;;20212:1;20209;20202:12;20164:2;20247:31;;-1:-1;;;;;20287:30;;20284:2;;;20330:1;20327;20320:12;20284:2;20350:93;20435:7;20426:6;20415:9;20411:22;20350:93;;20466:241;;20570:2;20558:9;20549:7;20545:23;20541:32;20538:2;;;20586:1;20583;20576:12;20538:2;20621:1;20638:53;20683:7;20663:9;20638:53;;20714:241;;20818:2;20806:9;20797:7;20793:23;20789:32;20786:2;;;20834:1;20831;20824:12;20786:2;20869:1;20886:53;20931:7;20911:9;20886:53;;20962:491;;;;21100:2;21088:9;21079:7;21075:23;21071:32;21068:2;;;21116:1;21113;21106:12;21068:2;21151:1;21168:53;21213:7;21193:9;21168:53;;;21158:63;;21130:97;21258:2;21276:53;21321:7;21312:6;21301:9;21297:22;21276:53;;;21266:63;;21237:98;21366:2;21384:53;21429:7;21420:6;21409:9;21405:22;21384:53;;21461:193;;21580:68;21644:3;21636:6;21580:68;;21663:282;;21802:102;21900:3;21892:6;21802:102;;;-1:-1;;21933:5;21924:15;;21795:150;21954:281;;22093:102;22191:3;22183:6;22093:102;;;-1:-1;;22224:4;22215:14;;22086:149;22244:281;;22383:102;22481:3;22473:6;22383:102;;;-1:-1;;22514:4;22505:14;;22376:149;22534:189;;22629:54;22679:3;22671:6;22629:54;;;-1:-1;;22712:4;22703:14;;22622:101;22731:127;22820:32;22846:5;22820:32;;;22815:3;22808:45;22802:56;;;23130:876;;23279:55;23328:5;23279:55;;;23347:89;23429:6;23424:3;23347:89;;;23340:96;;23459:3;23501:4;23493:6;23489:17;23484:3;23480:27;23528:57;23579:5;23528:57;;;23605:7;23633:1;23618:349;23643:6;23640:1;23637:13;23618:349;;;23705:9;23699:4;23695:20;23690:3;23683:33;23750:6;23744:13;23772:82;23849:4;23834:13;23772:82;;;23764:90;;23871:61;23925:6;23871:61;;;23955:4;23946:14;;;;;23861:71;-1:-1;;23665:1;23658:9;23618:349;;;-1:-1;23980:4;;23258:748;-1:-1;;;;;;;23258:748;24111:898;;24308:80;24382:5;24308:80;;;24401:112;24506:6;24501:3;24401:112;;;24394:119;;24534:82;24610:5;24534:82;;;24636:7;24664:1;24649:338;24674:6;24671:1;24668:13;24649:338;;;24741:6;24735:13;24762:115;24873:3;24858:13;24762:115;;;24755:122;;24894:86;24973:6;24894:86;;;24884:96;-1:-1;;24696:1;24689:9;24649:338;;;-1:-1;25000:3;;24287:722;-1:-1;;;;;24287:722;25114:898;;25311:80;25385:5;25311:80;;;25404:112;25509:6;25504:3;25404:112;;;25397:119;;25537:82;25613:5;25537:82;;;25639:7;25667:1;25652:338;25677:6;25674:1;25671:13;25652:338;;;25744:6;25738:13;25765:115;25876:3;25861:13;25765:115;;;25758:122;;25897:86;25976:6;25897:86;;;25887:96;-1:-1;;25699:1;25692:9;25652:338;;26119:832;26290:74;26358:5;26290:74;;;26377:100;26470:6;26465:3;26377:100;;;26370:107;;26498:76;26568:5;26498:76;;;26594:7;26622:1;26607:332;26632:6;26629:1;26626:13;26607:332;;;26699:6;26693:13;26720:115;26831:3;26816:13;26720:115;;;26713:122;;26852:80;26925:6;26852:80;;;26842:90;-1:-1;;26654:1;26647:9;26607:332;;26990:678;;27129:50;27173:5;27129:50;;;27192:84;27269:6;27264:3;27192:84;;;27185:91;;27297:52;27343:5;27297:52;;;27369:7;27397:1;27382:264;27407:6;27404:1;27401:13;27382:264;;;27474:6;27468:13;27495:71;27562:3;27547:13;27495:71;;;27488:78;;27583:56;27632:6;27583:56;;;27573:66;-1:-1;;27429:1;27422:9;27382:264;;27676:94;27743:21;27758:5;27743:21;;27777:103;27850:24;27868:5;27850:24;;28005:359;;28123:38;28155:5;28123:38;;;28173:78;28244:6;28239:3;28173:78;;;28166:85;;28256:52;28301:6;28296:3;28289:4;28282:5;28278:16;28256:52;;;28329:29;28351:6;28329:29;;;28320:39;;;;28103:261;-1:-1;;;28103:261;28371:356;;28499:38;28531:5;28499:38;;;28549:88;28630:6;28625:3;28549:88;;;28542:95;;28642:52;28687:6;28682:3;28675:4;28668:5;28664:16;28642:52;;;28706:16;;;;;28479:248;-1:-1;;28479:248;29072:164;29173:57;29224:5;29173:57;;30169:465;;30329:67;30393:2;30388:3;30329:67;;;30429:66;30409:87;;-1:-1;;;30525:2;30516:12;;30509:88;30625:2;30616:12;;30315:319;-1:-1;;30315:319;30643:465;;30803:67;30867:2;30862:3;30803:67;;;30903:66;30883:87;;-1:-1;;;30999:2;30990:12;;30983:88;31099:2;31090:12;;30789:319;-1:-1;;30789:319;31117:364;;31277:67;31341:2;31336:3;31277:67;;;31377:66;31357:87;;31472:2;31463:12;;31263:218;-1:-1;;31263:218;31490:364;;31650:67;31714:2;31709:3;31650:67;;;-1:-1;;;31730:87;;31845:2;31836:12;;31636:218;-1:-1;;31636:218;31863:364;;32023:67;32087:2;32082:3;32023:67;;;-1:-1;;;32103:87;;32218:2;32209:12;;32009:218;-1:-1;;32009:218;32236:364;;32396:67;32460:2;32455:3;32396:67;;;32496:66;32476:87;;32591:2;32582:12;;32382:218;-1:-1;;32382:218;32609:364;;32769:67;32833:2;32828:3;32769:67;;;-1:-1;;;32849:87;;32964:2;32955:12;;32755:218;-1:-1;;32755:218;32982:364;;33142:67;33206:2;33201:3;33142:67;;;33242:66;33222:87;;33337:2;33328:12;;33128:218;-1:-1;;33128:218;33355:364;;33515:67;33579:2;33574:3;33515:67;;;-1:-1;;;33595:87;;33710:2;33701:12;;33501:218;-1:-1;;33501:218;33728:364;;33888:67;33952:2;33947:3;33888:67;;;-1:-1;;;33968:87;;34083:2;34074:12;;33874:218;-1:-1;;33874:218;34181:339;34401:22;;34326:4;34317:14;;;34429:70;34321:3;34401:22;34429:70;;34658:2136;34921:22;;34851:5;34956:37;;;34658:2136;;34842:15;;;;35008:75;34842:15;34921:22;35008:75;;;35000:83;;34872:223;35176:4;35169:5;35165:16;35159:23;35188:71;35253:4;35248:3;35244:14;35230:12;35188:71;;;35105:160;35344:4;35337:5;35333:16;35327:23;35396:3;35390:4;35386:14;35379:4;35374:3;35370:14;35363:38;35416:75;35486:4;35472:12;35416:75;;;35408:83;;35275:228;35592:4;35585:5;35581:16;35575:23;35604:69;35667:4;35662:3;35658:14;35644:12;35604:69;;;35513:166;35759:4;35752:5;35748:16;35742:23;35811:3;35805:4;35801:14;35794:4;35789:3;35785:14;35778:38;35831:75;35901:4;35887:12;35831:75;;;35823:83;;35689:229;36008:4;36001:5;35997:16;35991:23;36020:69;36083:4;36078:3;36074:14;36060:12;36020:69;;;35928:167;36178:4;36171:5;36167:16;36161:23;36190:71;36255:4;36250:3;36246:14;36232:12;36190:71;;;36105:162;36361:4;36354:5;36350:16;36344:23;36413:3;36407:4;36403:14;36396:4;36391:3;36387:14;36380:38;36433:75;36503:4;36489:12;36433:75;;;36425:83;;36277:243;36607:5;36600;36596:17;36590:24;36661:3;36655:4;36651:14;36643:5;36638:3;36634:15;36627:39;36681:75;36751:4;36737:12;36681:75;;;36673:83;34824:1970;-1:-1;;;;;34824:1970;36932:1883;37198:22;;37125:5;37233:37;;;36932:1883;;37116:15;;;;37285:75;37116:15;37198:22;37285:75;;;37277:83;;37146:226;37461:4;37454:5;37450:16;37444:23;37473:69;37536:4;37531:3;37527:14;37513:12;37473:69;;;37382:166;37630:4;37623:5;37619:16;37613:23;37682:3;37676:4;37672:14;37665:4;37660:3;37656:14;37649:38;37702:75;37772:4;37758:12;37702:75;;;37694:83;;37558:231;37881:4;37874:5;37870:16;37864:23;37893:69;37956:4;37951:3;37947:14;37933:12;37893:69;;;37799:169;38057:4;38050:5;38046:16;38040:23;38109:3;38103:4;38099:14;38092:4;38087:3;38083:14;38076:38;38129:75;38199:4;38185:12;38129:75;;;38121:83;;37978:238;38292:4;38285:5;38281:16;38275:23;38344:3;38338:4;38334:14;38327:4;38322:3;38318:14;38311:38;38364:75;38434:4;38420:12;38364:75;;;38356:83;;38226:225;38532:4;38525:5;38521:16;38515:23;38544:71;38609:4;38604:3;38600:14;38586:12;38544:71;;;38461:160;38700:4;38693:5;38689:16;38683:23;38712:71;38777:4;38772:3;38768:14;38754:12;38712:71;;38947:1718;39206:22;;39134:4;39241:37;;;38947:1718;;39125:14;;;;39293:75;39125:14;39206:22;39293:75;;;39285:83;;39154:226;39473:4;39466:5;39462:16;39456:23;39525:3;39519:4;39515:14;39508:4;39503:3;39499:14;39492:38;39545:75;39615:4;39601:12;39545:75;;;39537:83;;39390:242;39714:4;39707:5;39703:16;39697:23;39726:71;39791:4;39786:3;39782:14;39768:12;39726:71;;;39642:161;39885:4;39878:5;39874:16;39868:23;39937:3;39931:4;39927:14;39920:4;39915:3;39911:14;39904:38;39957:75;40027:4;40013:12;39957:75;;;39949:83;;39813:231;40136:4;40129:5;40125:16;40119:23;40148:69;40211:4;40206:3;40202:14;40188:12;40148:69;;;40054:169;40312:4;40305:5;40301:16;40295:23;40364:3;40358:4;40354:14;40347:4;40342:3;40338:14;40331:38;40384:75;40454:4;40440:12;40384:75;;;40376:83;;40233:238;40550:4;40543:5;40539:16;40533:23;40562:71;40627:4;40622:3;40618:14;40604:12;40562:71;;40807:1440;41072:22;;40807:1440;;41004:4;40995:14;;;41100:70;40999:3;41072:22;41100:70;;;41024:152;41254:4;41247:5;41243:16;41237:23;41306:3;41300:4;41296:14;41289:4;41284:3;41280:14;41273:38;41326:75;41396:4;41382:12;41326:75;;;41318:83;;41186:227;41493:4;41486:5;41482:16;41476:23;41545:3;41539:4;41535:14;41528:4;41523:3;41519:14;41512:38;41565:75;41635:4;41621:12;41565:75;;;41557:83;;41423:229;41731:4;41724:5;41720:16;41714:23;41743:69;41806:4;41801:3;41797:14;41783:12;41743:69;;;41662:156;41894:4;41887:5;41883:16;41877:23;41946:3;41940:4;41936:14;41929:4;41924:3;41920:14;41913:38;41966:75;42036:4;42022:12;41966:75;;;41958:83;;41828:225;42132:4;42125:5;42121:16;42115:23;42144:71;42209:4;42204:3;42200:14;42186:12;42144:71;;42359:762;42587:22;;42516:4;42507:14;;;42615:95;42511:3;42587:22;42615:95;;;42536:180;42810:4;42803:5;42799:16;42793:23;42822:106;42922:4;42917:3;42913:14;42899:12;42822:106;;;42726:208;43017:4;43010:5;43006:16;43000:23;43029:71;43094:4;43089:3;43085:14;43071:12;43029:71;;45852:523;46084:22;;46009:4;46000:14;;;46112:70;46004:3;46084:22;46112:70;;;46029:159;46271:4;46264:5;46260:16;46254:23;46283:71;46348:4;46343:3;46339:14;46325:12;46283:71;;46485:1315;46713:22;;46642:4;46633:14;;;46741:95;46637:3;46713:22;46741:95;;;46662:180;46938:4;46931:5;46927:16;46921:23;46950:125;47069:4;47064:3;47060:14;47046:12;46950:125;;;46852:229;47163:4;47156:5;47152:16;47146:23;47175:95;47264:4;47259:3;47255:14;47241:12;47175:95;;;47091:185;47358:4;47351:5;47347:16;47341:23;47370:71;47435:4;47430:3;47426:14;47412:12;47370:71;;;47286:161;47526:4;47519:5;47515:16;47509:23;47538:71;47603:4;47598:3;47594:14;47580:12;47538:71;;;47457:158;47696:4;47689:5;47685:16;47679:23;47708:71;47773:4;47768:3;47764:14;47750:12;47708:71;;47906:916;48134:22;;48063:4;48054:14;;;48162:95;48058:3;48134:22;48162:95;;;48083:180;48340:4;48333:5;48329:16;48323:23;48352:89;48435:4;48430:3;48426:14;48412:12;48352:89;;;48273:174;48526:4;48519:5;48515:16;48509:23;48538:91;48623:4;48618:3;48614:14;48600:12;48538:91;;;48457:178;48718:4;48711:5;48707:16;48701:23;48730:71;48795:4;48790:3;48786:14;48772:12;48730:71;;49946:1207;50174:22;;50103:4;50094:14;;;50202:95;50098:3;50174:22;50202:95;;;50123:180;50395:4;50388:5;50384:16;50378:23;50407:125;50526:4;50521:3;50517:14;50503:12;50407:125;;;50313:225;50632:4;50625:5;50621:16;50615:23;50644:106;50744:4;50739:3;50735:14;50721:12;50644:106;;;50548:208;50843:4;50836:5;50832:16;50826:23;50855:104;50953:4;50948:3;50944:14;50930:12;50855:104;;;50766:199;51049:4;51042:5;51038:16;51032:23;51061:71;51126:4;51121:3;51117:14;51103:12;51061:71;;51255:1317;51487:22;;51412:4;51403:14;;;51515:94;51407:3;51487:22;51515:94;;;51432:183;51693:4;51686:5;51682:16;51676:23;51705:96;51795:4;51790:3;51786:14;51772:12;51705:96;;;51625:182;51903:4;51896:5;51892:16;51886:23;51915:125;52034:4;52029:3;52025:14;52011:12;51915:125;;52579:132;52688:18;;52682:29;52809:1812;53022:22;;52948:5;52939:15;;;53050:56;52943:3;53022:22;53050:56;;;52969:143;53199:4;53192:5;53188:16;53182:23;53211:61;53266:4;53261:3;53257:14;53243:12;53211:61;;;53122:156;53354:4;53347:5;53343:16;53337:23;53366:63;53423:4;53418:3;53414:14;53400:12;53366:63;;;53288:147;53512:4;53505:5;53501:16;53495:23;53524:63;53581:4;53576:3;53572:14;53558:12;53524:63;;;53445:148;53668:4;53661:5;53657:16;53651:23;53680:157;53831:4;53826:3;53822:14;53808:12;53680:157;;;53603:240;53919:4;53912:5;53908:16;53902:23;53931:158;54082:5;54077:3;54073:15;54059:12;53931:158;;;53853:242;54173:4;54166:5;54162:16;54156:23;54185:80;54258:5;54253:3;54249:15;54235:12;54185:80;;;54105:166;54348:4;54341:5;54337:16;54331:23;54360:64;54417:5;54412:3;54408:15;54394:12;54360:64;;;54281:149;54523:5;54516;54512:17;54506:24;54536:64;54593:5;54588:3;54584:15;54570:12;54536:64;;54777:649;55060:22;;54988:4;55095:37;;;54777:649;;54979:14;;;;55147:75;54979:14;55060:22;55147:75;;;55139:83;;55008:226;55313:4;55306:5;55302:16;55296:23;55325:69;55388:4;55383:3;55379:14;55365:12;55325:69;;56473:1119;56682:22;;56612:4;56603:14;;;56710:56;56607:3;56682:22;56710:56;;;56632:140;56848:4;56841:5;56837:16;56831:23;56860:63;56917:4;56912:3;56908:14;56894:12;56860:63;;;56782:147;57006:4;56999:5;56995:16;56989:23;57018:63;57075:4;57070:3;57066:14;57052:12;57018:63;;;56939:148;57166:4;57159:5;57155:16;57149:23;57178:79;57251:4;57246:3;57242:14;57228:12;57178:79;;57710:1578;57955:22;;57883:4;57990:37;;;57710:1578;;57874:14;;;;58042:75;57874:14;57955:22;58042:75;;;58034:83;;57903:226;58206:4;58199:5;58195:16;58189:23;58258:3;58252:4;58248:14;58241:4;58236:3;58232:14;58225:38;58278:117;58390:4;58376:12;58278:117;;;58270:125;;58139:268;58489:4;58482:5;58478:16;58472:23;58541:3;58535:4;58531:14;58524:4;58519:3;58515:14;58508:38;58561:107;58663:4;58649:12;58561:107;;;58553:115;;58417:263;58772:4;58765:5;58761:16;58755:23;58824:3;58818:4;58814:14;58807:4;58802:3;58798:14;58791:38;58844:117;58956:4;58942:12;58844:117;;;58836:125;;58690:283;59061:4;59054:5;59050:16;59044:23;59113:3;59107:4;59103:14;59096:4;59091:3;59087:14;59080:38;59133:117;59245:4;59231:12;59133:117;;59422:877;59680:22;;59422:877;;59611:4;59602:14;;;59708:70;59606:3;59680:22;59708:70;;;59631:153;59864:4;59857:5;59853:16;59847:23;59916:3;59910:4;59906:14;59899:4;59894:3;59890:14;59883:38;59936:75;60006:4;59992:12;59936:75;;;59928:83;;59794:229;60114:4;60107:5;60103:16;60097:23;60166:3;60160:4;60156:14;60149:4;60144:3;60140:14;60133:38;60186:75;60256:4;60242:12;60186:75;;60397:974;60606:22;;60536:4;60527:14;;;60634:62;60531:3;60606:22;60634:62;;;60556:146;60781:4;60774:5;60770:16;60764:23;60793:79;60866:4;60861:3;60857:14;60843:12;60793:79;;;60712:166;60952:4;60945:5;60941:16;60935:23;60964:63;61021:4;61016:3;61012:14;60998:12;60964:63;;;60888:145;61108:4;61101:5;61097:16;61091:23;61120:63;61177:4;61172:3;61168:14;61154:12;61120:63;;61378:113;61461:24;61479:5;61461:24;;61498:113;61581:24;61599:5;61581:24;;61864:110;61945:23;61962:5;61945:23;;62452:152;62553:45;62573:24;62591:5;62573:24;;;62553:45;;62611:100;62682:23;62699:5;62682:23;;62718:401;;62890:93;62979:3;62970:6;62890:93;;;62883:100;;62994:75;63065:3;63056:6;62994:75;;;-1:-1;63091:2;63082:12;;62871:248;-1:-1;;62871:248;63126:465;63346:2;63360:47;;;63331:18;;63421:160;63331:18;63567:6;63421:160;;63598:465;63818:2;63832:47;;;63803:18;;63893:160;63803:18;64039:6;63893:160;;64070:407;64261:2;64275:47;;;64246:18;;64336:131;64246:18;64336:131;;64484:407;64675:2;64689:47;;;64660:18;;64750:131;64660:18;64750:131;;64898:407;65089:2;65103:47;;;65074:18;;65164:131;65074:18;65164:131;;65312:407;65503:2;65517:47;;;65488:18;;65578:131;65488:18;65578:131;;65726:407;65917:2;65931:47;;;65902:18;;65992:131;65902:18;65992:131;;66140:407;66331:2;66345:47;;;66316:18;;66406:131;66316:18;66406:131;;66554:407;66745:2;66759:47;;;66730:18;;66820:131;66730:18;66820:131;;66968:407;67159:2;67173:47;;;67144:18;;67234:131;67144:18;67234:131;;67382:407;67573:2;67587:47;;;67558:18;;67648:131;67558:18;67648:131;;67796:407;67987:2;68001:47;;;67972:18;;68062:131;67972:18;68062:131;;68210:857;68562:3;68547:19;;68577:135;68551:9;68685:6;68577:135;;;68723:110;68829:2;68818:9;68814:18;68805:6;68723:110;;;68882:9;68876:4;68872:20;68866:3;68855:9;68851:19;68844:49;68907:150;69052:4;69043:6;68907:150;;69074:1049;69434:3;69419:19;;69449:135;69423:9;69557:6;69449:135;;;69595:110;69701:2;69690:9;69686:18;69677:6;69595:110;;;69754:9;69748:4;69744:20;69738:3;69727:9;69723:19;69716:49;69779:84;69858:4;69849:6;69779:84;;;69771:92;;69874:81;69950:3;69939:9;69935:19;69926:6;69874:81;;;70004:9;69998:4;69994:20;69988:3;69977:9;69973:19;69966:49;70029:84;70108:4;70099:6;70029:84;;;70021:92;69405:718;-1:-1;;;;;;;69405:718;70130:857;70482:3;70467:19;;70497:135;70471:9;70605:6;70497:135;;;70643:110;70749:2;70738:9;70734:18;70725:6;70643:110;;;70802:9;70796:4;70792:20;70786:3;70775:9;70771:19;70764:49;70827:150;70972:4;70963:6;70827:150;;70994:845;71340:3;71325:19;;71355:135;71329:9;71463:6;71355:135;;;71501:110;71607:2;71596:9;71592:18;71583:6;71501:110;;;71660:9;71654:4;71650:20;71644:3;71633:9;71629:19;71622:49;71685:144;71824:4;71815:6;71685:144;;71846:865;72202:3;72187:19;;72217:135;72191:9;72325:6;72217:135;;;72363:110;72469:2;72458:9;72454:18;72445:6;72363:110;;;72522:9;72516:4;72512:20;72506:3;72495:9;72491:19;72484:49;72547:154;72696:4;72687:6;72547:154;;72718:640;72986:3;72971:19;;73001:135;72975:9;73109:6;73001:135;;;73147:110;73253:2;73242:9;73238:18;73229:6;73147:110;;;73268:80;73344:2;73333:9;73329:18;73320:6;73268:80;;73365:894;73735:3;73720:19;;73750:135;73724:9;73858:6;73750:135;;;73896:111;74002:3;73991:9;73987:19;73978:6;73896:111;;;74056:9;74050:4;74046:20;74040:3;74029:9;74025:19;74018:49;74081:168;74244:4;74235:6;74081:168;;75171:762;75467:3;75452:19;;75482:135;75456:9;75590:6;75482:135;;;75628:111;75734:3;75723:9;75719:19;75710:6;75628:111;;;75750:81;75826:3;75815:9;75811:19;75802:6;75750:81;;;75842;75918:3;75907:9;75903:19;75894:6;75842:81;;76709:818;77041:3;77026:19;;77056:135;77030:9;77164:6;77056:135;;;77202:111;77308:3;77297:9;77293:19;77284:6;77202:111;;;77362:9;77356:4;77352:20;77346:3;77335:9;77331:19;77324:49;77387:130;77512:4;77503:6;77387:130;;77534:850;77882:3;77867:19;;77897:135;77871:9;78005:6;77897:135;;;78043:111;78149:3;78138:9;78134:19;78125:6;78043:111;;;78203:9;78197:4;78193:20;78187:3;78176:9;78172:19;78165:49;78228:146;78369:4;78360:6;78228:146;;78391:213;78509:2;78494:18;;78523:71;78498:9;78567:6;78523:71;;78611:213;78729:2;78714:18;;78743:71;78718:9;78787:6;78743:71;;78831:209;78947:2;78932:18;;78961:69;78936:9;79003:6;78961:69;;79047:256;79109:2;79103:9;79135:17;;;-1:-1;;;;;79195:34;;79231:22;;;79192:62;79189:2;;;79267:1;79264;79257:12;79189:2;79283;79276:22;79087:216;;-1:-1;79087:216;79310:305;;-1:-1;;;;;79462:6;79459:30;79456:2;;;79502:1;79499;79492:12;79456:2;-1:-1;79537:4;79525:17;;;79590:15;;79393:222;79929:317;;-1:-1;;;;;80060:6;80057:30;80054:2;;;80100:1;80097;80090:12;80054:2;-1:-1;80231:4;80167;80144:17;;;;-1:-1;;80140:33;80221:15;;79991:255;80581:152;80706:4;80697:14;;80654:79;81108:119;81214:3;81200:27;81388:138;81492:12;;81463:63;81873:129;-1:-1;81989:3;;81967:35;83046:181;83167:19;;;83216:4;83207:14;;83160:67;84684:91;;84746:24;84764:5;84746:24;;84888:85;84954:13;84947:21;;84930:43;85059:113;-1:-1;;;;;85121:46;;85104:68;85179:84;85251:6;85240:18;;85223:40;85270:121;-1:-1;;;;;85332:54;;85315:76;85477:96;-1:-1;;;;;85538:30;;85521:52;85580:161;;85679:57;85730:5;85679:57;;87504:145;87585:6;87580:3;87575;87562:30;-1:-1;87641:1;87623:16;;87616:27;87555:94;87658:268;87723:1;87730:101;87744:6;87741:1;87738:13;87730:101;;;87811:11;;;87805:18;87792:11;;;87785:39;87766:2;87759:10;87730:101;;;87846:6;87843:1;87840:13;87837:2;;;-1:-1;;87911:1;87893:16;;87886:27;87707:219;88015:97;88103:2;88083:14;-1:-1;;88079:28;;88063:49;88120:117;88189:24;88207:5;88189:24;;;88182:5;88179:35;88169:2;;88228:1;88225;88218:12;88169:2;88163:74;;88244:111;88310:21;88325:5;88310:21;;88362:117;88431:24;88449:5;88431:24;;88486:117;88555:24;88573:5;88555:24;;88610:115;88678:23;88695:5;88678:23;;88732:117;88801:24;88819:5;88801:24;;88899:74;1708:13:68;;:::i;:::-;-1:-1:-1;1851:264:68;;;;;;;;-1:-1:-1;;;;;1851:264:68;;;;;;-1:-1:-1;1851:264:68;;;;1827:7;1851:264;;;;;;;;;;;;;;;;;;1560:562::o",
  "source": "pragma solidity 0.5.11;\npragma experimental ABIEncoderV2;\n\nimport \"./PaymentExitGameArgs.sol\";\nimport \"./routers/PaymentStandardExitRouter.sol\";\nimport \"./routers/PaymentInFlightExitRouter.sol\";\nimport \"../utils/ExitId.sol\";\nimport \"../registries/SpendingConditionRegistry.sol\";\nimport \"../../framework/interfaces/IExitProcessor.sol\";\nimport \"../../framework/PlasmaFramework.sol\";\nimport \"../../utils/OnlyFromAddress.sol\";\n\n/**\n * @notice The exit game contract implementation for Payment Transaction\n */\ncontract PaymentExitGame is IExitProcessor, OnlyFromAddress, PaymentStandardExitRouter, PaymentInFlightExitRouter {\n    PlasmaFramework private plasmaFramework;\n\n    /**\n     * @dev use struct PaymentExitGameArgs to avoid stack too deep compilation error.\n     */\n    constructor(PaymentExitGameArgs.Args memory args)\n        public\n        PaymentStandardExitRouter(args)\n        PaymentInFlightExitRouter(args)\n    {\n        plasmaFramework = args.framework;\n\n        // makes sure that the spending condition has already renounced ownership\n        require(args.spendingConditionRegistry.owner() == address(0), \"Spending condition registry ownership needs to be renounced\");\n    }\n\n    /**\n     * @notice Callback processes exit function for the PlasmaFramework to call\n     * @param exitId The exit ID\n     * @param token Token (ERC20 address or address(0) for ETH) of the exiting output\n     */\n    function processExit(uint160 exitId, uint256, address token) external onlyFrom(address(plasmaFramework)) {\n        if (ExitId.isStandardExit(exitId)) {\n            PaymentStandardExitRouter.processStandardExit(exitId, token);\n        } else {\n            PaymentInFlightExitRouter.processInFlightExit(exitId, token);\n        }\n    }\n\n    /**\n     * @notice Helper function to compute the standard exit ID\n     */\n    function getStandardExitId(bool _isDeposit, bytes memory _txBytes, uint256 _utxoPos)\n        public\n        pure\n        returns (uint160)\n    {\n        PosLib.Position memory utxoPos = PosLib.decode(_utxoPos);\n        return ExitId.getStandardExitId(_isDeposit, _txBytes, utxoPos);\n    }\n\n    /**\n     * @notice Helper function to compute the in-flight exit ID\n     */\n    function getInFlightExitId(bytes memory _txBytes)\n        public\n        pure\n        returns (uint160)\n    {\n        return ExitId.getInFlightExitId(_txBytes);\n    }\n}\n",
  "sourcePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/PaymentExitGame.sol",
  "ast": {
    "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/PaymentExitGame.sol",
    "exportedSymbols": {
      "PaymentExitGame": [
        3977
      ]
    },
    "id": 3978,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3851,
        "literals": [
          "solidity",
          "0.5",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:48"
      },
      {
        "id": 3852,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "24:33:48"
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/PaymentExitGameArgs.sol",
        "file": "./PaymentExitGameArgs.sol",
        "id": 3853,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 3999,
        "src": "59:35:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/routers/PaymentStandardExitRouter.sol",
        "file": "./routers/PaymentStandardExitRouter.sol",
        "id": 3854,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 10447,
        "src": "95:49:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/routers/PaymentInFlightExitRouter.sol",
        "file": "./routers/PaymentInFlightExitRouter.sol",
        "id": 3855,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 10042,
        "src": "145:49:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/utils/ExitId.sol",
        "file": "../utils/ExitId.sol",
        "id": 3856,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 11023,
        "src": "195:29:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/registries/SpendingConditionRegistry.sol",
        "file": "../registries/SpendingConditionRegistry.sol",
        "id": 3857,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 10732,
        "src": "225:53:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/interfaces/IExitProcessor.sol",
        "file": "../../framework/interfaces/IExitProcessor.sol",
        "id": 3858,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 12206,
        "src": "279:55:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/PlasmaFramework.sol",
        "file": "../../framework/PlasmaFramework.sol",
        "id": 3859,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 12153,
        "src": "335:45:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/OnlyFromAddress.sol",
        "file": "../../utils/OnlyFromAddress.sol",
        "id": 3860,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 14292,
        "src": "381:41:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3861,
              "name": "IExitProcessor",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 12205,
              "src": "533:14:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IExitProcessor_$12205",
                "typeString": "contract IExitProcessor"
              }
            },
            "id": 3862,
            "nodeType": "InheritanceSpecifier",
            "src": "533:14:48"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3863,
              "name": "OnlyFromAddress",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 14291,
              "src": "549:15:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_OnlyFromAddress_$14291",
                "typeString": "contract OnlyFromAddress"
              }
            },
            "id": 3864,
            "nodeType": "InheritanceSpecifier",
            "src": "549:15:48"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3865,
              "name": "PaymentStandardExitRouter",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10446,
              "src": "566:25:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PaymentStandardExitRouter_$10446",
                "typeString": "contract PaymentStandardExitRouter"
              }
            },
            "id": 3866,
            "nodeType": "InheritanceSpecifier",
            "src": "566:25:48"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3867,
              "name": "PaymentInFlightExitRouter",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10041,
              "src": "593:25:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PaymentInFlightExitRouter_$10041",
                "typeString": "contract PaymentInFlightExitRouter"
              }
            },
            "id": 3868,
            "nodeType": "InheritanceSpecifier",
            "src": "593:25:48"
          }
        ],
        "contractDependencies": [
          10041,
          10446,
          12205,
          14148,
          14291,
          14308
        ],
        "contractKind": "contract",
        "documentation": "@notice The exit game contract implementation for Payment Transaction",
        "fullyImplemented": true,
        "id": 3977,
        "linearizedBaseContracts": [
          3977,
          10041,
          10446,
          14148,
          14308,
          14291,
          12205
        ],
        "name": "PaymentExitGame",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 3870,
            "name": "plasmaFramework",
            "nodeType": "VariableDeclaration",
            "scope": 3977,
            "src": "625:39:48",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
              "typeString": "contract PlasmaFramework"
            },
            "typeName": {
              "contractScope": null,
              "id": 3869,
              "name": "PlasmaFramework",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 12152,
              "src": "625:15:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                "typeString": "contract PlasmaFramework"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 3898,
              "nodeType": "Block",
              "src": "922:266:48",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3884,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3881,
                      "name": "plasmaFramework",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3870,
                      "src": "932:15:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                        "typeString": "contract PlasmaFramework"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3882,
                        "name": "args",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3872,
                        "src": "950:4:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Args_$3997_memory_ptr",
                          "typeString": "struct PaymentExitGameArgs.Args memory"
                        }
                      },
                      "id": 3883,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "framework",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3984,
                      "src": "950:14:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                        "typeString": "contract PlasmaFramework"
                      }
                    },
                    "src": "932:32:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                      "typeString": "contract PlasmaFramework"
                    }
                  },
                  "id": 3885,
                  "nodeType": "ExpressionStatement",
                  "src": "932:32:48"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3894,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3887,
                                "name": "args",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3872,
                                "src": "1065:4:48",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Args_$3997_memory_ptr",
                                  "typeString": "struct PaymentExitGameArgs.Args memory"
                                }
                              },
                              "id": 3888,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "spendingConditionRegistry",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3990,
                              "src": "1065:30:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_SpendingConditionRegistry_$10731",
                                "typeString": "contract SpendingConditionRegistry"
                              }
                            },
                            "id": 3889,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "owner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 16479,
                            "src": "1065:36:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                              "typeString": "function () view external returns (address)"
                            }
                          },
                          "id": 3890,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1065:38:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3892,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1115:1:48",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 3891,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1107:7:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 3893,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1107:10:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "1065:52:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5370656e64696e6720636f6e646974696f6e207265676973747279206f776e657273686970206e6565647320746f2062652072656e6f756e636564",
                        "id": 3895,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1119:61:48",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b974829d10e119953f6c7156417d64100ff6f2d0b3586f418c3ad96617433ab5",
                          "typeString": "literal_string \"Spending condition registry ownership needs to be renounced\""
                        },
                        "value": "Spending condition registry ownership needs to be renounced"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b974829d10e119953f6c7156417d64100ff6f2d0b3586f418c3ad96617433ab5",
                          "typeString": "literal_string \"Spending condition registry ownership needs to be renounced\""
                        }
                      ],
                      "id": 3886,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        17306,
                        17307
                      ],
                      "referencedDeclaration": 17307,
                      "src": "1057:7:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3896,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1057:124:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3897,
                  "nodeType": "ExpressionStatement",
                  "src": "1057:124:48"
                }
              ]
            },
            "documentation": "@dev use struct PaymentExitGameArgs to avoid stack too deep compilation error.",
            "id": 3899,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3875,
                    "name": "args",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3872,
                    "src": "872:4:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Args_$3997_memory_ptr",
                      "typeString": "struct PaymentExitGameArgs.Args memory"
                    }
                  }
                ],
                "id": 3876,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3874,
                  "name": "PaymentStandardExitRouter",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10446,
                  "src": "846:25:48",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_PaymentStandardExitRouter_$10446_$",
                    "typeString": "type(contract PaymentStandardExitRouter)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "846:31:48"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3878,
                    "name": "args",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3872,
                    "src": "912:4:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Args_$3997_memory_ptr",
                      "typeString": "struct PaymentExitGameArgs.Args memory"
                    }
                  }
                ],
                "id": 3879,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3877,
                  "name": "PaymentInFlightExitRouter",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10041,
                  "src": "886:25:48",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_PaymentInFlightExitRouter_$10041_$",
                    "typeString": "type(contract PaymentInFlightExitRouter)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "886:31:48"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3873,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3872,
                  "name": "args",
                  "nodeType": "VariableDeclaration",
                  "scope": 3899,
                  "src": "785:36:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Args_$3997_memory_ptr",
                    "typeString": "struct PaymentExitGameArgs.Args"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3871,
                    "name": "PaymentExitGameArgs.Args",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3997,
                    "src": "785:24:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Args_$3997_storage_ptr",
                      "typeString": "struct PaymentExitGameArgs.Args"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "784:38:48"
            },
            "returnParameters": {
              "id": 3880,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "922:0:48"
            },
            "scope": 3977,
            "src": "773:415:48",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3934,
              "nodeType": "Block",
              "src": "1514:227:48",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3915,
                        "name": "exitId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3901,
                        "src": "1550:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3913,
                        "name": "ExitId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11022,
                        "src": "1528:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ExitId_$11022_$",
                          "typeString": "type(library ExitId)"
                        }
                      },
                      "id": 3914,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "isStandardExit",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10915,
                      "src": "1528:21:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint160_$returns$_t_bool_$",
                        "typeString": "function (uint160) pure returns (bool)"
                      }
                    },
                    "id": 3916,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1528:29:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 3932,
                    "nodeType": "Block",
                    "src": "1650:85:48",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3928,
                              "name": "exitId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3901,
                              "src": "1710:6:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3929,
                              "name": "token",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3905,
                              "src": "1718:5:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3925,
                              "name": "PaymentInFlightExitRouter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10041,
                              "src": "1664:25:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_PaymentInFlightExitRouter_$10041_$",
                                "typeString": "type(contract PaymentInFlightExitRouter)"
                              }
                            },
                            "id": 3927,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "processInFlightExit",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9978,
                            "src": "1664:45:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint160_$_t_address_$returns$__$",
                              "typeString": "function (uint160,address)"
                            }
                          },
                          "id": 3930,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1664:60:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3931,
                        "nodeType": "ExpressionStatement",
                        "src": "1664:60:48"
                      }
                    ]
                  },
                  "id": 3933,
                  "nodeType": "IfStatement",
                  "src": "1524:211:48",
                  "trueBody": {
                    "id": 3924,
                    "nodeType": "Block",
                    "src": "1559:85:48",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3920,
                              "name": "exitId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3901,
                              "src": "1619:6:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3921,
                              "name": "token",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3905,
                              "src": "1627:5:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3917,
                              "name": "PaymentStandardExitRouter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10446,
                              "src": "1573:25:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_PaymentStandardExitRouter_$10446_$",
                                "typeString": "type(contract PaymentStandardExitRouter)"
                              }
                            },
                            "id": 3919,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "processStandardExit",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10445,
                            "src": "1573:45:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint160_$_t_address_$returns$__$",
                              "typeString": "function (uint160,address)"
                            }
                          },
                          "id": 3922,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1573:60:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3923,
                        "nodeType": "ExpressionStatement",
                        "src": "1573:60:48"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Callback processes exit function for the PlasmaFramework to call\n@param exitId The exit ID\n@param token Token (ERC20 address or address(0) for ETH) of the exiting output",
            "id": 3935,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3909,
                        "name": "plasmaFramework",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3870,
                        "src": "1496:15:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                          "typeString": "contract PlasmaFramework"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                          "typeString": "contract PlasmaFramework"
                        }
                      ],
                      "id": 3908,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1488:7:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 3910,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1488:24:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 3911,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3907,
                  "name": "onlyFrom",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 14290,
                  "src": "1479:8:48",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_address_$",
                    "typeString": "modifier (address)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1479:34:48"
              }
            ],
            "name": "processExit",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3906,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3901,
                  "name": "exitId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3935,
                  "src": "1430:14:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 3900,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "1430:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3903,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3935,
                  "src": "1446:7:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3902,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1446:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3905,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 3935,
                  "src": "1455:13:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3904,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1455:7:48",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1429:40:48"
            },
            "returnParameters": {
              "id": 3912,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1514:0:48"
            },
            "scope": 3977,
            "src": "1409:332:48",
            "stateMutability": "nonpayable",
            "superFunction": 12204,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3962,
              "nodeType": "Block",
              "src": "1969:145:48",
              "statements": [
                {
                  "assignments": [
                    3949
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3949,
                      "name": "utxoPos",
                      "nodeType": "VariableDeclaration",
                      "scope": 3962,
                      "src": "1979:30:48",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Position_$14318_memory_ptr",
                        "typeString": "struct PosLib.Position"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3948,
                        "name": "PosLib.Position",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 14318,
                        "src": "1979:15:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Position_$14318_storage_ptr",
                          "typeString": "struct PosLib.Position"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3954,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3952,
                        "name": "_utxoPos",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3941,
                        "src": "2026:8:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3950,
                        "name": "PosLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14475,
                        "src": "2012:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_PosLib_$14475_$",
                          "typeString": "type(library PosLib)"
                        }
                      },
                      "id": 3951,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14474,
                      "src": "2012:13:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_struct$_Position_$14318_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (struct PosLib.Position memory)"
                      }
                    },
                    "id": 3953,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2012:23:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Position_$14318_memory_ptr",
                      "typeString": "struct PosLib.Position memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1979:56:48"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3957,
                        "name": "_isDeposit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3937,
                        "src": "2077:10:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3958,
                        "name": "_txBytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3939,
                        "src": "2089:8:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3959,
                        "name": "utxoPos",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3949,
                        "src": "2099:7:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Position_$14318_memory_ptr",
                          "typeString": "struct PosLib.Position memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_Position_$14318_memory_ptr",
                          "typeString": "struct PosLib.Position memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3955,
                        "name": "ExitId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11022,
                        "src": "2052:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ExitId_$11022_$",
                          "typeString": "type(library ExitId)"
                        }
                      },
                      "id": 3956,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getStandardExitId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10956,
                      "src": "2052:24:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_struct$_Position_$14318_memory_ptr_$returns$_t_uint160_$",
                        "typeString": "function (bool,bytes memory,struct PosLib.Position memory) pure returns (uint160)"
                      }
                    },
                    "id": 3960,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2052:55:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "functionReturnParameters": 3945,
                  "id": 3961,
                  "nodeType": "Return",
                  "src": "2045:62:48"
                }
              ]
            },
            "documentation": "@notice Helper function to compute the standard exit ID",
            "id": 3963,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getStandardExitId",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3942,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3937,
                  "name": "_isDeposit",
                  "nodeType": "VariableDeclaration",
                  "scope": 3963,
                  "src": "1853:15:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3936,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1853:4:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3939,
                  "name": "_txBytes",
                  "nodeType": "VariableDeclaration",
                  "scope": 3963,
                  "src": "1870:21:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3938,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1870:5:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3941,
                  "name": "_utxoPos",
                  "nodeType": "VariableDeclaration",
                  "scope": 3963,
                  "src": "1893:16:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3940,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1893:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1852:58:48"
            },
            "returnParameters": {
              "id": 3945,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3944,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3963,
                  "src": "1956:7:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 3943,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "1956:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1955:9:48"
            },
            "scope": 3977,
            "src": "1826:288:48",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3975,
              "nodeType": "Block",
              "src": "2308:58:48",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3972,
                        "name": "_txBytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3965,
                        "src": "2350:8:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3970,
                        "name": "ExitId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11022,
                        "src": "2325:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ExitId_$11022_$",
                          "typeString": "type(library ExitId)"
                        }
                      },
                      "id": 3971,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getInFlightExitId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10978,
                      "src": "2325:24:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint160_$",
                        "typeString": "function (bytes memory) pure returns (uint160)"
                      }
                    },
                    "id": 3973,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2325:34:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "functionReturnParameters": 3969,
                  "id": 3974,
                  "nodeType": "Return",
                  "src": "2318:41:48"
                }
              ]
            },
            "documentation": "@notice Helper function to compute the in-flight exit ID",
            "id": 3976,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getInFlightExitId",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3966,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3965,
                  "name": "_txBytes",
                  "nodeType": "VariableDeclaration",
                  "scope": 3976,
                  "src": "2227:21:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3964,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2227:5:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2226:23:48"
            },
            "returnParameters": {
              "id": 3969,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3968,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3976,
                  "src": "2295:7:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 3967,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "2295:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2294:9:48"
            },
            "scope": 3977,
            "src": "2200:166:48",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3978,
        "src": "505:1863:48"
      }
    ],
    "src": "0:2369:48"
  },
  "legacyAST": {
    "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/PaymentExitGame.sol",
    "exportedSymbols": {
      "PaymentExitGame": [
        3977
      ]
    },
    "id": 3978,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3851,
        "literals": [
          "solidity",
          "0.5",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:48"
      },
      {
        "id": 3852,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "24:33:48"
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/PaymentExitGameArgs.sol",
        "file": "./PaymentExitGameArgs.sol",
        "id": 3853,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 3999,
        "src": "59:35:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/routers/PaymentStandardExitRouter.sol",
        "file": "./routers/PaymentStandardExitRouter.sol",
        "id": 3854,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 10447,
        "src": "95:49:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/payment/routers/PaymentInFlightExitRouter.sol",
        "file": "./routers/PaymentInFlightExitRouter.sol",
        "id": 3855,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 10042,
        "src": "145:49:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/utils/ExitId.sol",
        "file": "../utils/ExitId.sol",
        "id": 3856,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 11023,
        "src": "195:29:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/exits/registries/SpendingConditionRegistry.sol",
        "file": "../registries/SpendingConditionRegistry.sol",
        "id": 3857,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 10732,
        "src": "225:53:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/interfaces/IExitProcessor.sol",
        "file": "../../framework/interfaces/IExitProcessor.sol",
        "id": 3858,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 12206,
        "src": "279:55:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/framework/PlasmaFramework.sol",
        "file": "../../framework/PlasmaFramework.sol",
        "id": 3859,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 12153,
        "src": "335:45:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/nocholas/plasma-contracts/plasma_framework/contracts/src/utils/OnlyFromAddress.sol",
        "file": "../../utils/OnlyFromAddress.sol",
        "id": 3860,
        "nodeType": "ImportDirective",
        "scope": 3978,
        "sourceUnit": 14292,
        "src": "381:41:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3861,
              "name": "IExitProcessor",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 12205,
              "src": "533:14:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IExitProcessor_$12205",
                "typeString": "contract IExitProcessor"
              }
            },
            "id": 3862,
            "nodeType": "InheritanceSpecifier",
            "src": "533:14:48"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3863,
              "name": "OnlyFromAddress",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 14291,
              "src": "549:15:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_OnlyFromAddress_$14291",
                "typeString": "contract OnlyFromAddress"
              }
            },
            "id": 3864,
            "nodeType": "InheritanceSpecifier",
            "src": "549:15:48"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3865,
              "name": "PaymentStandardExitRouter",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10446,
              "src": "566:25:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PaymentStandardExitRouter_$10446",
                "typeString": "contract PaymentStandardExitRouter"
              }
            },
            "id": 3866,
            "nodeType": "InheritanceSpecifier",
            "src": "566:25:48"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3867,
              "name": "PaymentInFlightExitRouter",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10041,
              "src": "593:25:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PaymentInFlightExitRouter_$10041",
                "typeString": "contract PaymentInFlightExitRouter"
              }
            },
            "id": 3868,
            "nodeType": "InheritanceSpecifier",
            "src": "593:25:48"
          }
        ],
        "contractDependencies": [
          10041,
          10446,
          12205,
          14148,
          14291,
          14308
        ],
        "contractKind": "contract",
        "documentation": "@notice The exit game contract implementation for Payment Transaction",
        "fullyImplemented": true,
        "id": 3977,
        "linearizedBaseContracts": [
          3977,
          10041,
          10446,
          14148,
          14308,
          14291,
          12205
        ],
        "name": "PaymentExitGame",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 3870,
            "name": "plasmaFramework",
            "nodeType": "VariableDeclaration",
            "scope": 3977,
            "src": "625:39:48",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
              "typeString": "contract PlasmaFramework"
            },
            "typeName": {
              "contractScope": null,
              "id": 3869,
              "name": "PlasmaFramework",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 12152,
              "src": "625:15:48",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                "typeString": "contract PlasmaFramework"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 3898,
              "nodeType": "Block",
              "src": "922:266:48",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3884,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3881,
                      "name": "plasmaFramework",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3870,
                      "src": "932:15:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                        "typeString": "contract PlasmaFramework"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3882,
                        "name": "args",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3872,
                        "src": "950:4:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Args_$3997_memory_ptr",
                          "typeString": "struct PaymentExitGameArgs.Args memory"
                        }
                      },
                      "id": 3883,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "framework",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3984,
                      "src": "950:14:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                        "typeString": "contract PlasmaFramework"
                      }
                    },
                    "src": "932:32:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                      "typeString": "contract PlasmaFramework"
                    }
                  },
                  "id": 3885,
                  "nodeType": "ExpressionStatement",
                  "src": "932:32:48"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3894,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3887,
                                "name": "args",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3872,
                                "src": "1065:4:48",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Args_$3997_memory_ptr",
                                  "typeString": "struct PaymentExitGameArgs.Args memory"
                                }
                              },
                              "id": 3888,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "spendingConditionRegistry",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3990,
                              "src": "1065:30:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_SpendingConditionRegistry_$10731",
                                "typeString": "contract SpendingConditionRegistry"
                              }
                            },
                            "id": 3889,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "owner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 16479,
                            "src": "1065:36:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                              "typeString": "function () view external returns (address)"
                            }
                          },
                          "id": 3890,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1065:38:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 3892,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1115:1:48",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 3891,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1107:7:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 3893,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1107:10:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "1065:52:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5370656e64696e6720636f6e646974696f6e207265676973747279206f776e657273686970206e6565647320746f2062652072656e6f756e636564",
                        "id": 3895,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1119:61:48",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b974829d10e119953f6c7156417d64100ff6f2d0b3586f418c3ad96617433ab5",
                          "typeString": "literal_string \"Spending condition registry ownership needs to be renounced\""
                        },
                        "value": "Spending condition registry ownership needs to be renounced"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b974829d10e119953f6c7156417d64100ff6f2d0b3586f418c3ad96617433ab5",
                          "typeString": "literal_string \"Spending condition registry ownership needs to be renounced\""
                        }
                      ],
                      "id": 3886,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        17306,
                        17307
                      ],
                      "referencedDeclaration": 17307,
                      "src": "1057:7:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3896,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1057:124:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3897,
                  "nodeType": "ExpressionStatement",
                  "src": "1057:124:48"
                }
              ]
            },
            "documentation": "@dev use struct PaymentExitGameArgs to avoid stack too deep compilation error.",
            "id": 3899,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3875,
                    "name": "args",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3872,
                    "src": "872:4:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Args_$3997_memory_ptr",
                      "typeString": "struct PaymentExitGameArgs.Args memory"
                    }
                  }
                ],
                "id": 3876,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3874,
                  "name": "PaymentStandardExitRouter",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10446,
                  "src": "846:25:48",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_PaymentStandardExitRouter_$10446_$",
                    "typeString": "type(contract PaymentStandardExitRouter)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "846:31:48"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 3878,
                    "name": "args",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3872,
                    "src": "912:4:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Args_$3997_memory_ptr",
                      "typeString": "struct PaymentExitGameArgs.Args memory"
                    }
                  }
                ],
                "id": 3879,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3877,
                  "name": "PaymentInFlightExitRouter",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 10041,
                  "src": "886:25:48",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_PaymentInFlightExitRouter_$10041_$",
                    "typeString": "type(contract PaymentInFlightExitRouter)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "886:31:48"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3873,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3872,
                  "name": "args",
                  "nodeType": "VariableDeclaration",
                  "scope": 3899,
                  "src": "785:36:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Args_$3997_memory_ptr",
                    "typeString": "struct PaymentExitGameArgs.Args"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3871,
                    "name": "PaymentExitGameArgs.Args",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3997,
                    "src": "785:24:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Args_$3997_storage_ptr",
                      "typeString": "struct PaymentExitGameArgs.Args"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "784:38:48"
            },
            "returnParameters": {
              "id": 3880,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "922:0:48"
            },
            "scope": 3977,
            "src": "773:415:48",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3934,
              "nodeType": "Block",
              "src": "1514:227:48",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3915,
                        "name": "exitId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3901,
                        "src": "1550:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3913,
                        "name": "ExitId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11022,
                        "src": "1528:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ExitId_$11022_$",
                          "typeString": "type(library ExitId)"
                        }
                      },
                      "id": 3914,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "isStandardExit",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10915,
                      "src": "1528:21:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint160_$returns$_t_bool_$",
                        "typeString": "function (uint160) pure returns (bool)"
                      }
                    },
                    "id": 3916,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1528:29:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 3932,
                    "nodeType": "Block",
                    "src": "1650:85:48",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3928,
                              "name": "exitId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3901,
                              "src": "1710:6:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3929,
                              "name": "token",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3905,
                              "src": "1718:5:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3925,
                              "name": "PaymentInFlightExitRouter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10041,
                              "src": "1664:25:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_PaymentInFlightExitRouter_$10041_$",
                                "typeString": "type(contract PaymentInFlightExitRouter)"
                              }
                            },
                            "id": 3927,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "processInFlightExit",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 9978,
                            "src": "1664:45:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint160_$_t_address_$returns$__$",
                              "typeString": "function (uint160,address)"
                            }
                          },
                          "id": 3930,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1664:60:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3931,
                        "nodeType": "ExpressionStatement",
                        "src": "1664:60:48"
                      }
                    ]
                  },
                  "id": 3933,
                  "nodeType": "IfStatement",
                  "src": "1524:211:48",
                  "trueBody": {
                    "id": 3924,
                    "nodeType": "Block",
                    "src": "1559:85:48",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3920,
                              "name": "exitId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3901,
                              "src": "1619:6:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3921,
                              "name": "token",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3905,
                              "src": "1627:5:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3917,
                              "name": "PaymentStandardExitRouter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10446,
                              "src": "1573:25:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_PaymentStandardExitRouter_$10446_$",
                                "typeString": "type(contract PaymentStandardExitRouter)"
                              }
                            },
                            "id": 3919,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "processStandardExit",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10445,
                            "src": "1573:45:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint160_$_t_address_$returns$__$",
                              "typeString": "function (uint160,address)"
                            }
                          },
                          "id": 3922,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1573:60:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3923,
                        "nodeType": "ExpressionStatement",
                        "src": "1573:60:48"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@notice Callback processes exit function for the PlasmaFramework to call\n@param exitId The exit ID\n@param token Token (ERC20 address or address(0) for ETH) of the exiting output",
            "id": 3935,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3909,
                        "name": "plasmaFramework",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3870,
                        "src": "1496:15:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                          "typeString": "contract PlasmaFramework"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_PlasmaFramework_$12152",
                          "typeString": "contract PlasmaFramework"
                        }
                      ],
                      "id": 3908,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1488:7:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 3910,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1488:24:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 3911,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3907,
                  "name": "onlyFrom",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 14290,
                  "src": "1479:8:48",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_address_$",
                    "typeString": "modifier (address)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1479:34:48"
              }
            ],
            "name": "processExit",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3906,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3901,
                  "name": "exitId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3935,
                  "src": "1430:14:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 3900,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "1430:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3903,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3935,
                  "src": "1446:7:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3902,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1446:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3905,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 3935,
                  "src": "1455:13:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3904,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1455:7:48",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1429:40:48"
            },
            "returnParameters": {
              "id": 3912,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1514:0:48"
            },
            "scope": 3977,
            "src": "1409:332:48",
            "stateMutability": "nonpayable",
            "superFunction": 12204,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3962,
              "nodeType": "Block",
              "src": "1969:145:48",
              "statements": [
                {
                  "assignments": [
                    3949
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3949,
                      "name": "utxoPos",
                      "nodeType": "VariableDeclaration",
                      "scope": 3962,
                      "src": "1979:30:48",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Position_$14318_memory_ptr",
                        "typeString": "struct PosLib.Position"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3948,
                        "name": "PosLib.Position",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 14318,
                        "src": "1979:15:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Position_$14318_storage_ptr",
                          "typeString": "struct PosLib.Position"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3954,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3952,
                        "name": "_utxoPos",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3941,
                        "src": "2026:8:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3950,
                        "name": "PosLib",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14475,
                        "src": "2012:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_PosLib_$14475_$",
                          "typeString": "type(library PosLib)"
                        }
                      },
                      "id": 3951,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 14474,
                      "src": "2012:13:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_struct$_Position_$14318_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (struct PosLib.Position memory)"
                      }
                    },
                    "id": 3953,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2012:23:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Position_$14318_memory_ptr",
                      "typeString": "struct PosLib.Position memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1979:56:48"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3957,
                        "name": "_isDeposit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3937,
                        "src": "2077:10:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3958,
                        "name": "_txBytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3939,
                        "src": "2089:8:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3959,
                        "name": "utxoPos",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3949,
                        "src": "2099:7:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Position_$14318_memory_ptr",
                          "typeString": "struct PosLib.Position memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_Position_$14318_memory_ptr",
                          "typeString": "struct PosLib.Position memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3955,
                        "name": "ExitId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11022,
                        "src": "2052:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ExitId_$11022_$",
                          "typeString": "type(library ExitId)"
                        }
                      },
                      "id": 3956,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getStandardExitId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10956,
                      "src": "2052:24:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_struct$_Position_$14318_memory_ptr_$returns$_t_uint160_$",
                        "typeString": "function (bool,bytes memory,struct PosLib.Position memory) pure returns (uint160)"
                      }
                    },
                    "id": 3960,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2052:55:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "functionReturnParameters": 3945,
                  "id": 3961,
                  "nodeType": "Return",
                  "src": "2045:62:48"
                }
              ]
            },
            "documentation": "@notice Helper function to compute the standard exit ID",
            "id": 3963,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getStandardExitId",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3942,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3937,
                  "name": "_isDeposit",
                  "nodeType": "VariableDeclaration",
                  "scope": 3963,
                  "src": "1853:15:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3936,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1853:4:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3939,
                  "name": "_txBytes",
                  "nodeType": "VariableDeclaration",
                  "scope": 3963,
                  "src": "1870:21:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3938,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1870:5:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3941,
                  "name": "_utxoPos",
                  "nodeType": "VariableDeclaration",
                  "scope": 3963,
                  "src": "1893:16:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3940,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1893:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1852:58:48"
            },
            "returnParameters": {
              "id": 3945,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3944,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3963,
                  "src": "1956:7:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 3943,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "1956:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1955:9:48"
            },
            "scope": 3977,
            "src": "1826:288:48",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3975,
              "nodeType": "Block",
              "src": "2308:58:48",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3972,
                        "name": "_txBytes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3965,
                        "src": "2350:8:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3970,
                        "name": "ExitId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 11022,
                        "src": "2325:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ExitId_$11022_$",
                          "typeString": "type(library ExitId)"
                        }
                      },
                      "id": 3971,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getInFlightExitId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 10978,
                      "src": "2325:24:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint160_$",
                        "typeString": "function (bytes memory) pure returns (uint160)"
                      }
                    },
                    "id": 3973,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2325:34:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "functionReturnParameters": 3969,
                  "id": 3974,
                  "nodeType": "Return",
                  "src": "2318:41:48"
                }
              ]
            },
            "documentation": "@notice Helper function to compute the in-flight exit ID",
            "id": 3976,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getInFlightExitId",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3966,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3965,
                  "name": "_txBytes",
                  "nodeType": "VariableDeclaration",
                  "scope": 3976,
                  "src": "2227:21:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3964,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2227:5:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2226:23:48"
            },
            "returnParameters": {
              "id": 3969,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3968,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3976,
                  "src": "2295:7:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 3967,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "2295:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2294:9:48"
            },
            "scope": 3977,
            "src": "2200:166:48",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3978,
        "src": "505:1863:48"
      }
    ],
    "src": "0:2369:48"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.11+commit.c082d0b4.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.16",
  "updatedAt": "2020-02-19T07:32:14.869Z",
  "devdoc": {
    "methods": {
      "challengeInFlightExitInputSpent((bytes,uint16,bytes,uint16,bytes,bytes,uint256,bytes32))": {
        "params": {
          "args": "Argument data to challenge (see also struct 'ChallengeInputSpentArgs')"
        }
      },
      "challengeInFlightExitNotCanonical((bytes,uint256,bytes,uint16,bytes,uint16,uint256,bytes,bytes))": {
        "params": {
          "args": "Input argument data to challenge (see also struct 'ChallengeCanonicityArgs')"
        }
      },
      "challengeInFlightExitOutputSpent((bytes,bytes,uint256,bytes,uint16,bytes,bytes32))": {
        "params": {
          "args": "Argument data to challenge (see also struct 'ChallengeOutputSpent')"
        }
      },
      "constructor": {
        "details": "use struct PaymentExitGameArgs to avoid stack too deep compilation error."
      },
      "deleteNonPiggybackedInFlightExit(uint160)": {
        "details": "Since IFE is enqueued during piggyback, a non-piggybacked IFE means that it will never be processed.     This means that the IFE bond will never be returned.     see: https://github.com/omisego/plasma-contracts/issues/440",
        "params": {
          "exitId": "The exitId of the in-flight exit"
        }
      },
      "inFlightExits(uint160[])": {
        "params": {
          "exitIds": "The exit IDs of the in-flight exits"
        }
      },
      "piggybackInFlightExitOnInput((bytes,uint16))": {
        "params": {
          "args": "Input argument data to piggyback (see also struct 'PiggybackInFlightExitOnInputArgs')"
        }
      },
      "piggybackInFlightExitOnOutput((bytes,uint16))": {
        "params": {
          "args": "Input argument data to piggyback (see also struct 'PiggybackInFlightExitOnOutputArgs')"
        }
      },
      "processExit(uint160,uint256,address)": {
        "params": {
          "exitId": "The exit ID",
          "token": "Token (ERC20 address or address(0) for ETH) of the exiting output"
        }
      },
      "respondToNonCanonicalChallenge(bytes,uint256,bytes)": {
        "params": {
          "inFlightTx": "The RLP-encoded in-flight transaction",
          "inFlightTxInclusionProof": "Proof that the in-flight exiting transaction is included in a Plasma block",
          "inFlightTxPos": "The position of the in-flight exiting transaction. The output index within the position is unused and should be set to 0"
        }
      },
      "standardExits(uint160[])": {
        "params": {
          "exitIds": "Exit IDs of the standard exits"
        }
      },
      "startInFlightExit((bytes,bytes[],uint256[],bytes[],bytes[]))": {
        "params": {
          "args": "Input argument data to challenge (see also struct 'StartExitArgs')"
        }
      },
      "updatePiggybackBondSize(uint128)": {
        "params": {
          "newBondSize": "The new bond size"
        }
      },
      "updateStartIFEBondSize(uint128)": {
        "params": {
          "newBondSize": "The new bond size"
        }
      },
      "updateStartStandardExitBondSize(uint128)": {
        "params": {
          "newBondSize": "The new bond size"
        }
      }
    }
  },
  "userdoc": {
    "methods": {
      "challengeInFlightExitInputSpent((bytes,uint16,bytes,uint16,bytes,bytes,uint256,bytes32))": {
        "notice": "Challenges an exit from in-flight transaction input"
      },
      "challengeInFlightExitNotCanonical((bytes,uint256,bytes,uint16,bytes,uint16,uint256,bytes,bytes))": {
        "notice": "Challenges an in-flight exit to be non-canonical"
      },
      "challengeInFlightExitOutputSpent((bytes,bytes,uint256,bytes,uint16,bytes,bytes32))": {
        "notice": "Challenges an exit from in-flight transaction output"
      },
      "challengeStandardExit((uint160,bytes,bytes,uint16,bytes,bytes32))": {
        "notice": "Challenge a standard exit by showing the exiting output was spent"
      },
      "deleteNonPiggybackedInFlightExit(uint160)": {
        "notice": "Deletes in-flight exit if the first phase has passed and not being piggybacked"
      },
      "getInFlightExitId(bytes)": {
        "notice": "Helper function to compute the in-flight exit ID"
      },
      "getStandardExitId(bool,bytes,uint256)": {
        "notice": "Helper function to compute the standard exit ID"
      },
      "inFlightExits(uint160[])": {
        "notice": "Getter functions to retrieve in-flight exit data of the PaymentExitGame"
      },
      "piggybackBondSize()": {
        "notice": "Retrieves the piggyback bond size"
      },
      "piggybackInFlightExitOnInput((bytes,uint16))": {
        "notice": "Piggyback on an input of an in-flight exiting tx. Processed only if the in-flight exit is non-canonical."
      },
      "piggybackInFlightExitOnOutput((bytes,uint16))": {
        "notice": "Piggyback on an output of an in-flight exiting tx. Processed only if the in-flight exit is canonical."
      },
      "processExit(uint160,uint256,address)": {
        "notice": "Callback processes exit function for the PlasmaFramework to call"
      },
      "respondToNonCanonicalChallenge(bytes,uint256,bytes)": {
        "notice": "Respond to a non-canonical challenge by providing its position and by proving its correctness"
      },
      "standardExits(uint160[])": {
        "notice": "Getter retrieves standard exit data of the PaymentExitGame"
      },
      "startIFEBondSize()": {
        "notice": "Retrieves the in-flight exit bond size"
      },
      "startInFlightExit((bytes,bytes[],uint256[],bytes[],bytes[]))": {
        "notice": "Starts withdrawal from a transaction that may be in-flight"
      },
      "startStandardExit((uint256,bytes,bytes))": {
        "notice": "Starts a standard exit of a given output, using output-age priority"
      },
      "startStandardExitBondSize()": {
        "notice": "Retrieves the standard exit bond size"
      },
      "updatePiggybackBondSize(uint128)": {
        "notice": "Updates the piggyback bond size, taking two days to become effective"
      },
      "updateStartIFEBondSize(uint128)": {
        "notice": "Updates the in-flight exit bond size, taking two days to become effective."
      },
      "updateStartStandardExitBondSize(uint128)": {
        "notice": "Updates the standard exit bond size, taking two days to become effective"
      }
    },
    "notice": "The exit game contract implementation for Payment Transaction"
  }
}